2018년 12월 2일 일요일

[MS-SQL] 날짜 변환 함수, CONVERT

MS-SQL의 CONVERT 함수는 CAST 함수와 비슷하지만
DATE 형식을 변환할 때 세부 변환 스타일을 지정해줄 수 있어서 날짜 변환 연산이 필요한 경우엔 CONVERT 함수를 사용하는 것이 낫다.

CONVERT와 CAST의 형식은 아래와 같다.
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
CAST ( expression AS data_type [ ( length ) ] )

현재 시간을 문자열 형식으로 바꾸는데, 마지막 'style' 파라미터를 이용해 변환 형식을 지정할 수 있다.
우리나라 사람은 '년-월-일' 표현이나 '시:분:초' 표현에 익숙하기 때문에 자주쓰게 되는 형식은 다음과 같다.
참고로 형식 2가 'yy' 버전이라면 형식에 100을 더한 102가 'yyyy' 버전이 된다.

SELECT CONVERT(VARCHAR, GETDATE(), 2) -- 18.02.03 (yy.mm.dd, ANSI 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 102) -- 2018.02.03 (yyyy.mm.dd, ANSI 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 11) -- 18/12/03 (yy/mm/dd, 일본 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 111) -- 2018/12/03 (yy/mm/dd, 일본 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 12) -- 181203 (yymmdd, ISO 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 112) -- 20181203 (yyyymmdd, ISO 표준)
SELECT CONVERT(VARCHAR, GETDATE(), 20 or 120) -- 2018-12-03 10:54:34 (yyyy-mm-dd hh:mi:ss(24h), ODBC canonical 표준)

[MSDN: https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017]

댓글 없음:

댓글 쓰기