상황
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>
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] OFFSET - FETCH 이용하여 페이징 처리 (0) | 2022.03.16 |
---|---|
[MSSQL] @@IDENTITY (자동증가값) PK값 IDX값 반환 (0) | 2022.03.16 |
댓글