
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]

'데이터베이스[DB] > MSSQL' 카테고리의 다른 글
[MSSQL] SUM, ISNULL (0) | 2024.03.28 |
---|---|
[MSSQL] MAX, MIN ( 집계함수 ) (0) | 2024.03.27 |
[MSSQL] SET ROWCOUNT n (0) | 2024.03.19 |
[MSSQL] 전체테이블, 프로시저, 인덱스 등 생성 스크립트 (0) | 2024.03.17 |
[MSSQL] MAX ROW 가져오기 (최대값을 가진 ROW들을 가져오는 법) (0) | 2024.03.15 |
[MSSQL] 임시테이블 활용하기 ( TempTable ) (0) | 2024.03.14 |
[MSSQL] CHARINDEX - 특정 문자 찾기 (0) | 2024.03.13 |
[MSSQL] RANK, DENSE_RANK, ROW_NUMBER, PARTITION BY 차이 (0) | 2024.03.12 |