본문 바로가기
Database/MSSQL

MSSQL 날짜 포맷 세팅

by SOLYI 2022. 2. 16.

계약종료일 당일에 로그인이 되지 않는 이슈가 발생했다.

원인은 참 간단하다.

 

계약 종료일 컬럼의 날짜 포맷이 0시 00분으로 되어있었기 때문.

그 날 0시 1분 이후로는 로그인이 안되는게 당연하다.

 

코드를 수정함에 있어 방법은 두가지 정도가 있었다.

1. 계정 정보를 조회하는 쿼리문의 조회 조건 중 계약종료일 > 오늘 이던 코드를 계약종료일 >= 오늘 로 변경하는 방법.

2. DB상의 계약종료일 날짜 포맷을 0시 00분에서 23시 59분으로 변경하는 방법

   && 앞으로 insert, update 되는 계약종료일을 23시 59분으로 설정하여 입력할 것.

 

간단한 방법으로는 1번 방법으로 문자 하나만 추가해주면 되지만

추후 어떤 문제를 또 야기시킬지 모르는 상황이니 2번 방법으로 진행하기로 했다.

 

2022년 2월 16일 0시 00분이던 데이터를 2022년 2월 16일 23시 59분으로 변경해주는 쿼리문


update user테이블
 set 계약종료일 = dateadd(second, -1, DATEADD(d, DATEDIFF(d, -1, 계약종료일 ), 0))

* 테이블명과 컬럼명은 한글로 변경했다.

 

추가로 메모해둔 날짜포맷

--현재 날짜와 시간
--2022-02-16 09:33:34.327
select getdate()

--현재 날짜 - 1초
--2022-02-16 09:33:31.327
select dateadd(second, -1, getdate())

--내일 날짜
--2022-02-17 00:00:00.000
select DATEADD(d, DATEDIFF(d, -1, GETDATE()), 0)

--내일 날짜 - 1초
--2022-02-16 23:59:59.000
select dateadd(second, -1, DATEADD(d, DATEDIFF(d, -1, GETDATE()), 0))

 

반응형