날짜+시간을 한 컬럼에 yyyymmddhhmmss 형식으로 혹은 두 컬럼에 yyyymmdd, hhmmss 형식으로 문자열로 저장되는 케이스가 있다.
이를 날짜형식(datetime)으로 변환해야 할 경우 아래와 같이 STUFF(), CAST() 함수를 이용하여 변환하면 된다.
1. 한 컬럼에 yyyymmddhhmmss 형식
SELECT CAST(STUFF(STUFF(STUFF('yyyymmddhhmmss', 9, 0, ' '), 12, 0, ':'), 15, 0, ':') AS DATETIME) AS DATE
-- 예시
SELECT CAST(STUFF(STUFF(STUFF('20230216182510', 9, 0, ' '), 12, 0, ':'), 15, 0, ':') AS DATETIME) AS DATE
2. 두 컬럼에 yyyymmdd, hhmmss 형식
SELECT CAST(STUFF(STUFF(STUFF(CONCAT('yyyymmdd,'hhmmss'), 9, 0, ' '), 12, 0, ':'), 15, 0, ':') AS DATETIME) AS DATE
-- 예시
SELECT CAST(STUFF(STUFF(STUFF(CONCAT('20230216','182510'), 9, 0, ' '), 12, 0, ':'), 15, 0, ':') AS DATETIME) AS DATE
(참고)
STUFF() 함수는 문자열을 자리수 만큼 특정문자로 치환하고 문자열로 리턴한다.
예시) STUFF("문자열", "시작위치", "문자길이", "치환문자")
CAST() 함수는 데이터형식을 다른 데이터형식으로 변환한다.
예시) CAST("변환하려는 데이터" AS [데이터형식])
'MS-SQL' 카테고리의 다른 글
MS-SQL 날짜 변환표 (CONVERT) (0) | 2024.09.27 |
---|---|
MS-SQL DATEADD 함수 사용 방법 (0) | 2024.08.08 |