본문 바로가기
MS-SQL

yyyymmddhhmmss 형식으로 저장된 문자열을 날짜형식으로 변경

by 브루노W 2023. 2. 16.

날짜+시간을 한 컬럼에 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