본문 바로가기
데이터베이스[DB]/MSSQL

[MSSQL] CONVERT - 문자열날짜변환

by 낭만의개꿈 2024. 3. 16.

 

MS-SQL 에서 자료형 형태를 변환하여 표기하는 CONVERT 라는 함수를 알아보자

 

CONVERT
  • 여러가지 자료형 ( INT, CHAR, VARCHAR, DATETIME, DOUBLE 등) 을 필요에 따라 다른 자료형으로 변환

Convert( 자료형(길이), 데이터, 표기형식 )

자료형     : 변환 결과로 나올 자료형을 지정 ( ex. char, varchar )
길이         : 문자열 등 자료형의 길이 지정, 생략가능 ( ex. varchar(10) )
데이터     : 변활할 데이터 ( ex. Getdate() )
표기형식 : 결과물의 표기형식 지정, 생략가능 ( ex. 112, 120 )


SELECT CONVERT(varchar(10), Getdate(), 120)

현재일시를 문자열로 표기

 

표기형식표를 보면 120의 경우, YYYY-MM-DD HH:MM:SS ( 2024-03-15 14:30:00 ) 의 형태를 띄나,

varchar(10) 으로 설정했기 때문에 10자리를 끊어 YYYY-MM-DD ( 2024-03-15 ) 의 형태로 출력 표기된다.

 

SELECT CONVERT(varchar, Getdate(), 120)

현재일시를 문자열로 표기

 

varchar의 길이값은 생략이 가능한 부분이라 위와 같이 생략하면 표기형식표의 120을 그대로 따와 문자열로 표기되는 것을 확인할 수 있다.

 

SELECT CONVERT(varchar, Getdate())

현재일시를 문자열로 표기

 

마찬가지로 표기형식도 생략이 가능한 부분이라 위와 같이 생략하면 현재일시가 바로 표기가 되나, 미국 날짜 표기 방식대로 월/일/년의 순서대로 표기되는 것을 확인할 수 있다.

이에 우리나라는 Gedate() 를 이용하여 일시를 문자열로 표기할 때에 표기형식은 대부분 생략하지 않고, 120을 붙여서 사용하는 게 기본적인 것 같다.

 

자주쓰이는 String To Datetime 코드
SELECT  CONVERT(varchar, getdate(), 20) AS [20]
	,CONVERT(varchar, getdate(), 23) AS [23]
	,CONVERT(varchar, getdate(), 111) AS [111]
	,CONVERT(varchar, getdate(), 112) AS [112]

현재일시를 문자열로 표기