DB/MSSQL

[MSSQL] 날짜 Date Format 지정/변환(FORMAT, CONVERT)

영국너구리 2020. 12. 11. 11:52

1. FORMAT

FORMAT(value, format [, culture])
FORMAT(변환할 타입, 포맷)
DECLARE @DATETEST1 NVARCHAR(30)
DECLARE @DATETEST2 NVARCHAR(30)

-- 보통 DATETIME을 쓸 때 출력되는 양식
SET @DATETEST1 = FORMAT(GETDATE(), 'yyyy-MM-dd hh:mm:ss.fff')

-- 보통 많이 쓰는양식
SET @DATETEST2 = FORMAT(GETDATE(), 'yyyyMMdd')


PRINT @DATETEST1
PRINT @DATETEST2

출력결과

더보기

culture 있는 예시

DECLARE @d DATE = '11/22/2020';
SELECT FORMAT( @d, 'd', 'en-US' ) 'US English'  
      ,FORMAT( @d, 'd', 'en-gb' ) 'Great Britain English'  
      ,FORMAT( @d, 'd', 'de-de' ) 'German'  
      ,FORMAT( @d, 'd', 'zh-cn' ) 'Simplified Chinese (PRC)';  
  
SELECT FORMAT( @d, 'D', 'en-US' ) 'US English'  
      ,FORMAT( @d, 'D', 'en-gb' ) 'Great Britain English'  
      ,FORMAT( @d, 'D', 'de-de' ) 'German'  
      ,FORMAT( @d, 'D', 'zh-cn' ) 'Chinese (Simplified PRC)';  

 

출력결과

날짜형식 표현형식
yyyy 2021
yy 21
mm 09
MMMM 09월
M 9
dddd 월요일
ddd
DD 05
D 5
HH 0
hh 12
h 12
mm 01
M 1
SS 02
S 2
tt 오전
T AM
fff 333
ff 33
F 3

 

2. CONVERT

자주쓰는 변환표

번호 쿼리 결과 코드
21 CONVERT(CHAR(23), DATETIME, 21) 2000-01-02 13:14:15.678 YYYY-MM-DD HH:MM:SS.MS
23 CONVERT(CHAR(10), DATETIME, 23) 2000-01-02 YYYY-MM-DD
112 CONVERT(CHAR(8), DATETIME, 112) 20000102  YYYYMMDD

그 외 예시는 아래 참고

참고 URL

 


 

참고
- riptutorial.com - Microsoft SQL Server