MSSQL

[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를 쓰는게 나을 수도 있습니다.

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

배곧동개발자

Recent Posts

[MSSQL] 넓은 영어, 띄어쓰기 영어 입력되는 현상 (전각입력/문자폭)

#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…

1개월 ago

[이미르] 다니아믹 키 확실한 해결방법 (커스텀토큰/접속불가)

#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…

1개월 ago

[이미르] 대기열 왜 이렇게 길어졌나? (중국작업장/매크로)

#레전드오브이미르 #작업장 #쌀먹 #중국 #매크로 #대기열 1. 운영 문제 있네? 이제 오픈 2주차에 들어온 위메이드의…

2개월 ago

[이미르] 엠틱을 챙겨보자 (스토리덱/마나회복력)

#레전드오브이미르 #엠틱 #마나회복력 #스토리덱 1. 마나가 너무 부족해! 레전드 오브 이미르는 스킬 위주의 액션 게임이라고…

2개월 ago

[이미르] 시구르드와 대화 (위치/메인퀘스트19-19)

#레전드오브이미르 #파괴가남긴것 #시구르드 #19-19 #위치 1. 파괴가 남긴 것 레전드 오브 이미르 메인퀘스트 19-19인 "파괴가…

2개월 ago

[이미르] 트롤의 비밀상자, 트롤의 유적상층 보물상자 위치

#레전드오브이미르 #트롤의비밀상자 #트롤의유적상층 #보물상자 #위치 1. 트롤의 비밀 상자 이번에 알아 볼 의뢰게시판 의뢰는 바로…

2개월 ago