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
주의사항
- 성능: FORMAT 함수는 .NET CLR을 사용하기 때문에 성능이 CONVERT 함수보다 다소 느릴 수 있습니다. 대규모 데이터 처리 시 신중히 사용하세요.
- 호환성: SQL Server 2012 이상에서만 지원됩니다.
FORMAT 함수는 간단한 데이터 표시 작업이나 보고서 생성에 특히 유용합니다. 하지만 성능을 고려해야 하는 경우, 특정 변환에는 CONVERT나 CAST를 사용하는 것이 더 적합할 수 있습니다.