본문 바로가기

MS-SQL

MSSQL 날짜 변환, CONVERT()함수의 활용

이번 글에서는 CONVERT함수를 활용한 MSSQL 날짜 변환에 대해 알아보겠습니다. 프로젝트를 수행하다 보면 날짜정보를 많이 다루게 되는데요, 국내에서는 대부분 yyyymmdd 또는 yyyy-mm-dd 형식으로 날짜를 관리합니다. GETDATE함수로 MSSQL서버의 현재시간을 가져오면 yyyy-mm-dd hh:mm:ss 형식인데요, 각 스타일 번호별로 리턴형식이 어떻게 변하는지 다음 표에서 확인하시기 바랍니다.

1. CONVERT()함수의 스타일 번호별 날짜 변환 형식 

쿼리 스타일번호 출력결과 비고

SELECT CONVERT(nvarchar(50), GETDATE(), 1)

 1

01/20/19

mm/dd/yy

SELECT CONVERT(nvarchar(50), GETDATE(), 101)

 101

01/20/2019 

mm/dd/yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 2)

 2

19.01.20

yy.mm.dd

SELECT CONVERT(nvarchar(50), GETDATE(), 102)

 102

2019.01.20

yyyy.mm.dd

SELECT CONVERT(nvarchar(50), GETDATE(), 3)

 3

20/01/19

dd/mm/yy

SELECT CONVERT(nvarchar(50), GETDATE(), 103)

 103

20/01/2019

dd/mm/yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 4)

 4

20.01.19

dd.mm.yy

SELECT CONVERT(nvarchar(50), GETDATE(), 104)

 104

20.01.2019

dd.mm.yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 5)

 5

20-01-19

dd-mm-yy

SELECT CONVERT(nvarchar(50), GETDATE(), 105)

 105

20-01-2019

dd-mm-yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 6) 

 6

20 01 19

dd mm yy

SELECT CONVERT(nvarchar(50), GETDATE(), 106)

 106

20 01 2019

dd mm yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 7) 

 7

01 20, 19

mm dd, yy

SELECT CONVERT(nvarchar(50), GETDATE(), 107)

 107

01 20, 201

mm dd, yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 8) 

 8

23:59:59

hh:mm:ss

SELECT CONVERT(nvarchar(50), GETDATE(), 108)

 108

23:59:59

hh:mm:ss

SELECT CONVERT(nvarchar(50), GETDATE(), 9) 

 9

01 20 2019  11:59:59:999PM

mon dd yyyy hh:mi:ss:mmmAM(또는 PM)

SELECT CONVERT(nvarchar(50), GETDATE(), 109)

 109

01 20 2019  11:59:59:999PM

mon dd yyyy hh:mi:ss:mmmAM(또는 PM)

SELECT CONVERT(nvarchar(50), GETDATE(), 10) 

 10

01-20-19

mm-dd-yy

SELECT CONVERT(nvarchar(50), GETDATE(), 110)

 110

01-20-2019

mm-dd-yyyy

SELECT CONVERT(nvarchar(50), GETDATE(), 11) 

 11

19/01/20

yy/mm/dd

SELECT CONVERT(nvarchar(50), GETDATE(), 111)

 111

2019/01/20

yyyy/mm/dd

SELECT CONVERT(nvarchar(50), GETDATE(), 12) 

 12

190120

yymmdd

SELECT CONVERT(nvarchar(50), GETDATE(), 112)

 112

20190120

yyyymmdd

SELECT CONVERT(nvarchar(50), GETDATE(), 13)

 13

11 04 2019 23:59:59:999

dd mm yyyy hh:mm:ss:mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 113)

 113

11 04 2019 23:59:59:999

dd mm yyyy hh:mm:ss:mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 14) 

 14

23:59:59:999

hh:mm:ss:mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 114)

 114

23:59:59:999

hh:mm:ss:mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 20) 

 20

2019-01-20 23:59:59

yyyy-mm-dd hh:mm:ss 

SELECT CONVERT(nvarchar(50), GETDATE(), 120)

 120

2019-01-20 23:59:59

yyyy-mm-dd hh:mm:ss

SELECT CONVERT(nvarchar(50), GETDATE(), 21)

 21

2019-01-20 23:59:59.999

yyyy-mm-dd hh:mm:ss.mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 121)

 121

2019-01-20 23:59:59.999

yyyy-mm-dd hh:mm:ss.mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 126)

 126

2019-01-20T23:59:59.999

yyyy-mm-ddThh:mi:ss.mmm

SELECT CONVERT(nvarchar(50), GETDATE(), 127)

 127

2019-01-20T23:59:59.999

yyyy-mm-ddThh:mi:ss.mmmZ

SELECT CONVERT(nvarchar(50), GETDATE(), 130)

 130

6 شعبان 1440  11:59:59:999PM

 

SELECT CONVERT(nvarchar(50), GETDATE(), 131)

 131

6/08/1440  23:59:59.999PM

 

2. 시스템 날짜 시간 가져오기

--2019-04-13 20:45:21 동시 실행시
SELECT SYSDATETIME()		--2019-04-13 20:45:21.5004774
SELECT SYSDATETIMEOFFSET()  --2019-04-13 20:45:21.5004774 +09:00
SELECT SYSUTCDATETIME()		--2019-04-13 11:45:21.5004774
SELECT CURRENT_TIMESTAMP	--2019-04-13 20:45:21.507
SELECT GETDATE()			--2019-04-13 20:45:21.507
SELECT GETUTCDATE()			--2019-04-13 11:45:21.500

3. 시스템 날짜 시간 함수와 CONVERT()를 이용한 날짜 가져오기

--2019-04-13 20:45:21 동시 실행시
SELECT CONVERT(date, SYSDATETIME())			--2019-04-13
SELECT CONVERT(date, SYSDATETIMEOFFSET())   --2019-04-13
SELECT CONVERT(date, SYSUTCDATETIME())		--2019-04-13
SELECT CONVERT(date, CURRENT_TIMESTAMP)	    --2019-04-13
SELECT CONVERT(date, GETDATE())			    --2019-04-13
SELECT CONVERT(date, GETUTCDATE())			--2019-04-13

4. 시스템 날짜 시간 함수와 CONVERT()를 이용한 시간 가져오기

--2019-04-13 20:46:39 동시 실행시
SELECT CONVERT(time, SYSDATETIME())			--20:46:39.9374151
SELECT CONVERT(time, SYSDATETIMEOFFSET())   --20:46:39.9374151
SELECT CONVERT(time, SYSUTCDATETIME())		--11:46:39.9374151
SELECT CONVERT(time, CURRENT_TIMESTAMP)	    --20:46:39.9270000
SELECT CONVERT(time, GETDATE())			    --20:46:39.9270000
SELECT CONVERT(time, GETUTCDATE())			--11:46:39.9370000

자료참고 : MS Docs, 날짜타입

 

프로젝트의 성공을 기원합니다.

관련글 : 

 

관련글 : 2018/10/20 - [MS-SQL] - MSSQL 기본 날짜형식 변경

 

MSSQL 서버의 기본 날짜형식 변경

웹 개발을 하면서 해외 프로젝트를 할 경우가 종종 있습니다. 프로젝트를 하면서 DB의 날짜형식은 yyyy-MM-dd 이겠거니... 하고 개발하다가 예를 들어 러시아 프로젝트를 하면 러시아인들은 dd-MM-yyyy를 날짜형식..

spaghetti-code.tistory.com

 

'MS-SQL' 카테고리의 다른 글

MSSQL 일련번호는 시퀀스(Sequence)를 사용하자.  (0) 2019.05.18
MSSQL 프로시저 텍스트 검색  (0) 2019.04.19
MSSQL 게시판 글번호 매기기  (0) 2019.04.07
MSSQL 버전확인  (0) 2019.02.15
MSSQL 초간단 팁들  (0) 2019.02.02