쿼리 조건문에서 날짜 데이터 형태에 따른 다른 결과가 나올 수 있나요? 0 4 1,695

by 다어려워 [SQL Query] mariaDB query where timestamp [2023.03.06 10:21:44]


안녕하세요.

현재 오류가 발생이 되었는데 쿼리문에서 데이터의 차이 때문에 결과값이 다름니다.

select * from t_event where now() BETWEEN EVENT_STIME AND EVENT_ETIME;

1. 오류가 발생된 데이터 : 조건문에 포함되지 않음
EVENT_STIME : "2023-03-01T00:00:00+09:00"
EVENT_ETIME : "2023-03-31T24:00:00+09:00"

2. 현재 정상적으로 작동되는 데이터 : 조건문에 포함됨
EVENT_STIME : "2023-03-01T00:00:00+09:00"
EVENT_ETIME : "2023-04-01T00:00:00+09:00"

2개의 데이터가 조건문에서 왜 다르게 출력되는지 궁금합니다.
감사합니다.

 

by 마농 [2023.03.06 10:42:30]

24:00:00 이부분이 이상하네요.
시간은 00:00:00 ~ 23:59:59 범위입니다.


by 다어려워 [2023.03.06 10:52:29]

현재 날짜를 String 형태로 저장을 하고 있습니다.
해당 데이터는 UI에서 시간 부분에 24:00으로 표현이 되어
24:00으로 들어가게 되었는데 이 부분 때문에 오류가 난 것이라고 볼수 있는건가요?
일반적으로 날짜 시간을 나타낼 때 24:00을 사용해본 적이 없는 것들을 확인을 했지만 명확한 확인이 요구가 되고 있습니다


by 신이만든지기 [2023.03.06 11:39:18]
select str_to_date('2023-03-01 00:00:00', '%Y-%m-%d %H:%i:%s'), str_to_date('2023-03-01 24:00:00', '%Y-%m-%d %H:%i:%s');

이렇게 형변환을 해보면, 24시로 되어 있는 데이터는 null이 발생합니다.

null 이  발생하여 데이터 추출에 포함되지 않는 것으로 보입니다.


by 마농 [2023.03.06 13:13:30]
SELECT *
  FROM t_event
 WHERE DATE_FORMAT(NOW(), '%Y-%m-%dT%H:%i:%s+09:00') BETWEEN event_stime AND event_etime
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입