[MSSQL] datetime 날짜변환은 FORMAT으로!

#MSSQL #convert #날짜변환 #날짜표시 #날짜표기

1. convert varchar 는 불편해!

처음 학교에서나 직장에와서 MSSQL의 datetime을 내가 원하는 형태로 표현하고자 하는 경우에 아래와 같이 하게끔 배웠었습니다.

select
  convert(varchar, reg_dt, 112) -- 20250205
from
  tbl_bbs

익숙해진 지금에야 대충 이래저래 쓴다지만, 사실 저게 불편한게 많죠. 저 상태에서 더 가공을 해야하는 경우가 특히 그러한데

-- 년도만 표기
select
  substring(convert(varchar, reg_dt, 112),1,4) -- 2025
from
  tbl_bbs

이렇게 년, 월, 일만 따로 가져오고 싶다면 쿼리로 하든 자바에서 처리를 하든 불편함이 생기기 마련입니다.


2. FORMAT을 쓰자

하지만 format을 쓰면 굳이 그러지 않아도 되지요. 아주 편해요!

select 
  format(reg_dt, 'yyyyMMdd') -- 20250205
from
  tbl_bbs

이렇게 내가 원하는 형태를 바로 지정해서 출력 해버릴 수 있기 때문입니다. 년도만 표기해본다 치면

select 
  format(reg_dt, 'yyyy') -- 20250205
from
  tbl_bbs

이렇게 할 수도 있고 “년-월-일 시:분” 혹은 “년-월-일 시:분:초” 를 표시하고 싶다면

select 
  format(reg_dt, 'yyyy-MM-dd HH:mm:ss') -- 2025-02-05 13:22:12
  format(reg_dt, 'yyyy-MM-dd hh:mm') -- 2025-02-05 01:22
from
  tbl_bbs

이렇게 간단한 방법으로 출력이 가능합니다.


3. 쉬운걸 쓰자

개인적으로는 format을 사용하는 것이 압도적으로 편하고 쉽다 생각하는데, MSSQL뿐 아니라 다른 DB도 만지시는 분들은 그냥 일관되게 convert를 쓰는게 나을 수도 있습니다.

본인의 취향에 따라서 골라서 슬기로운 코딩생활 해봅시다!

Leave a Comment