아주 쉬우면서도 착각할 수도 있는 날짜 조회

2022. 4. 7. 21:00Oracle/Oracle Study

반응형

아래와 같은 테이블이 존재한다.

SQL> select name, reg_date from temp_food_info;

NAME REG_DATE
archor 2022/04/05 23:44:11
milk 2022/04/06 10:23:44
water 2022/04/07 00:00:00
chicken 2022/04/07 00:00:01
meat 2022/04/08 00:10:00

 

여기서 우리는 등록날짜가 4/6~4/7 데이터를 산출 할 것이다.

SQL> select *

from temp_food_info

where reg_date between to_date('20220406','yyyymmdd') and to_date('20220407','yyyymmdd')

;

 

결과값

NAME   REG_DATE
------- -------------------
milk      2022/04/06 10:23:44
water   2022/04/07 00:00:00

등록일이 4/7 임에도 불구하고 chicken 이 누락되었다.

이유는 날짜만 지정하였을 경우 시간대는 00:00:00으로 인식하기 때문에 4/7 00:00:00 이후 데이터는 조회가 되지 않는다.

그러므로 2022/04/07 00:00:01 에 등록된 chicken은 누락이 된 것이였다.

 

해결방법은 간단하다. 날짜 조건을 시간까지 포함 또는 그 이상의 날짜를 넣자. 

(1) 시간포함

where reg_date between to_date('2022/04/06 00:00:00','yyyy/mm/dd hh24:mi:ss')

and to_date('2022/04/07 23:59:59','yyyy/mm/dd hh24:mi:ss')

 

(2) 그 이상의 날짜

where reg_date >= to_date('20220406','yyyymmdd')

and reg_date < to_date('20220408','yyyymmdd')

 

간과하지 말고 항상 주의를 기울어야 겠다.

 

반응형

'Oracle > Oracle Study' 카테고리의 다른 글

trigger 사용  (3) 2024.11.13
패스워드 주기 확인  (0) 2022.04.22
[oracle19c] 사용자 생성 및 삭제 (ORA-65096, ORA-28014)  (0) 2022.03.24
11g alert 파일 경로 확인  (0) 2022.02.09
shmmax 값에 대한 추측성 글  (0) 2015.03.10