SQL

MS-SQL Format 함수 활용법

100ksoft 2025. 1. 22. 15:38

FORMAT 함수는 SQL Server 2012 이상에서 지원되며, 날짜, 시간, 숫자 등 다양한 데이터를 특정 형식으로 변환하여 문자열로 반환하는 매우 유용한 함수입니다

FORMAT(value, format, [culture])

 

  • value: 변환할 값 (날짜, 시간, 숫자 등).
  • format: 변환할 형식. .NET의 표준 서식 문자열을 사용합니다.
  • culture (선택): 지역 문화권을 지정하는 문자열(예: 'en-US', 'ko-KR'). 생략 시 서버의 기본 문화권이 사용됩니다.

주요 형식

format에 사용할 수 있는 형식 문자열은 아래와 같습니다.

1. 날짜/시간 서식

서식 문자열설명예시 (2025-01-22 14:45:30)

yyyy 4자리 연도 2025
yy 2자리 연도 25
MM 2자리 월 01
dd 2자리 일 22
hh 12시간제 시간 02
HH 24시간제 시간 14
mm 45
ss 30
tt 오전/오후 표시 PM

2. 숫자 서식

서식 문자열설명예시 (1234.567)

N 숫자 (소수점 포함) 1,234.57
C 통화 표시 $1,234.57 (미국 기준)
P 백분율 123,457.00%
D 정수 서식 1235

사용 예제

1. 날짜를 특정 형식으로 변환

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate; -- 결과: 2025-01-22
SELECT FORMAT(GETDATE(), 'yyMM') AS YearMonth;           -- 결과: 2501
SELECT FORMAT(GETDATE(), 'dd/MM/yyyy HH:mm') AS FullDateTime; -- 결과: 22/01/2025 14:45

 

2. 숫자를 특정 형식으로 변환

SELECT FORMAT(1234567.89, 'N') AS NumberWithCommas; -- 결과: 1,234,567.89
SELECT FORMAT(0.875, 'P') AS Percentage;            -- 결과: 87.50%
SELECT FORMAT(1234.567, 'C', 'en-US') AS Currency;  -- 결과: $1,234.57

3. 다른 문화권 지정

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd', 'en-US') AS USFormat; -- 결과: 2025-01-22
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd', 'ko-KR') AS KRFormat; -- 결과: 2025-01-22

주의사항

  1. 성능: FORMAT 함수는 .NET CLR을 사용하기 때문에 성능이 CONVERT 함수보다 다소 느릴 수 있습니다. 대규모 데이터 처리 시 신중히 사용하세요.
  2. 호환성: SQL Server 2012 이상에서만 지원됩니다.

FORMAT 함수는 간단한 데이터 표시 작업이나 보고서 생성에 특히 유용합니다. 하지만 성능을 고려해야 하는 경우, 특정 변환에는 CONVERT나 CAST를 사용하는 것이 더 적합할 수 있습니다.