계약종료일 당일에 로그인이 되지 않는 이슈가 발생했다.
원인은 참 간단하다.
계약 종료일 컬럼의 날짜 포맷이 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))
반응형
'Database > MSSQL' 카테고리의 다른 글
SSMS, SQL Server Profiler 를 사용하여 부족한 인덱스 찾아내기 (1) | 2024.12.11 |
---|