기록
article thumbnail
728x90

사용자 화면에서 날짜 데이터를 기본 형식이 아닌 다른 형식으로 요청하는 경우가 있습니다.

사용자가 원하는 형식으로 표시할 때 datetime 데이터 타입을 varchar 로 변환하게 됩니다. 문자열로 변환하기 때문에 다양하게 표시할 수 있습니다. 그 중에 자주 사용하는 형식을 CONVERT 함수와 FORMAT 함수 두 가지를 사용하여 표현하였습니다.

 

CONVERT

-- 2022-12-28
SELECT CONVERT(char(10), datetimedata, 23)

-- 2022-12-28 15:13
SELECT CONVERT(char(10), datetimedata, 23) + ' ' + SUBSTRING(CONVERT(char(8), datetimedata, 8), 0, 6)

-- 2022.12.28
SELECT CONVERT(char(10), datetimedata, 102)

-- 2022-12-28 13:14:15.678
SELECT CONVERT(char(23), datetimedata, 21)  

-- 15:19
SELECT SUBSTRING(CONVERT(char(8),datetimedata, 24), 0, 6)

-- Dec. 28. Wednesday
SELECT CONCAT(FORMAT(datetimedata, 'MMM', 'en-us'), '. ',  DATENAME(DD,datetimedata), '. ',  FORMAT(datetimedata, 'dddd', 'en-us'))

 -- 2022년 12월 28일 수요일 15시 21분
SELECT CONVERT(varchar(4), YEAR(datetimedata)) + '년 ' + CONVERT(varchar(2), MONTH(datetimedata)) + '월 ' + CONVERT(varchar(2), DAY(datetimedata)) + '일 ' + DATENAME(DW, datetimedata) + ' ' + CONVERT(varchar(2), DATEPART(HOUR, datetimedata)) + '시 ' + CONVERT(varchar(2), DATEPART(MINUTE, datetimedata)) + '분'

FORMAT

FORMAT함수를 사용할 때 포맷형식을 알고 있으면 더 자유롭게 형식을 만들 수 있습니다.

더보기

dd : 01-31 일자를  표현
dddd :  요일을 표현
MM : 01-12 월을 표현 
MMM : 1-12 월을 표현
MMMM : 1-12 에서 '월' 글자를 포함해서 표현
yy : 연도를 2자리로 표현 ex) 2022년 -> 22
yyyy -연도를 4자리로 표현
hh : 시간을 12시간제로 표현 ex) 15시 -> 03시
HH : 시간을 24시간제로 표현 00-23
mm : 분을 00-59로 표현
ss : 초를 00-59로 표현
tt : 오전/오후를 표현
en-us : 언어 설정 

-- 2022-12-28
SELECT FORMAT(datetimedata, 'yyyy-MM-dd')

-- 2022-12-28 15:27
SELECT FORMAT(datetimedata, 'yyyy-MM-dd HH:mm')

-- 2022-12-28 03:27
SELECT FORMAT(datetimedata, 'yyyy-MM-dd hh:mm')

-- 2022-12-28 오후
SELECT FORMAT(datetimedata, 'yyyy-MM-dd tt')

-- 2022.12.28
SELECT FORMAT(datetimedata, 'yyyy.MM.dd')

-- 15:29
SELECT FORMAT(datetimedata, 'HH:mm')

-- Dec. 28. Wednesday
SELECT CONCAT(SUBSTRING(FORMAT(datetimedata,  'MMMM.','en-us'), 0, 3), SPACE(1), FORMAT(datetimedata,  'dd. dddd','en-us'))

 -- 2022년 12월 28일 수요일 15시 34분
SELECT FORMAT(datetimedata, 'yyyy년 MM월 dd일 dddd HH시 mm분')
참고사이트
공식 : https://learn.microsoft.com/ko-kr/sql/t-sql/functions/format-transact-sql?view=sql-server-ver16
728x90