본문 바로가기
DB/MSSQL

[MSSQL] 날짜 포맷 변경하기

by 은z 2022. 3. 15.

상황

mybatis를 이용하여 select 문에서 원하는 형식으로 날짜를 가져와야 했다.

근데 log를 찍어보니, 다른 데이터들은 잘 가져오는데 날짜부분만 계속 null값이 떴다.

알아보니, alias를 지정해주지 않아서 생긴 문제였다.

 

일단 MSSQL에서 사용하는 날짜 포맷 변경방법 부터 알아보자.

(Mysql, Oracle과는 문법이 많이 다르다)

 

 

1. 날짜 포맷 변경하기 (두가지 방법 중 골라쓰면 됨)

1) CONVERT 함수 사용하기

CONVERT(VARCHAR(10), GETDATE(), 23) // YYYY-MM-DD 이런 형식으로 변환

다른 형식으로 변환을 해야된다면 아래 링크를 참고하자.

https://blog.naver.com/anne9/221975613943

 

2) FORMAT 함수 사용하기

FORMAT(CAST(GETDATE() AS DATE), 'yyyy-MM-dd')

FORMAT(GETDATE(), 'yyyyMMddHHmmss')

이런식으로 형태를 지정해줄 수도 있다.

위 방법은 SQL Server 2012 부터 사용할 수 있다고 한다.

 

 

 

 

2. 실제 mybatis에서 데이터를 가져올 때 쓰는 예시

- 위에서 언급한대로 alias(AS) 지정해주어야 잘 매핑된다.

<select id="selectList" resultType="Result">

		SELECT NO
		, LOCALE
		, TYPE
		, TITLE
		, CONTENTS
		, SHOW_YN
		, CONVERT(VARCHAR(10), START_DAY, 23) AS START_DAY
		, CONVERT(VARCHAR(10), END_DAY, 23) AS END_DAY
		, ORDER_NO
		, RELATION_URL
		, RELATION_URL_TYPE
		, REG_ID
		, REG_DT
		, MOD_ID
		, MOD_DT
		FROM RESULT A

</select>

댓글