본문 바로가기
프로젝트/세미프로젝트-병원 종합정보시스템 사이트

[오답] SYSDATE로 INSERT한 데이터가 조회되지 않음

by moca7 2024. 9. 26.

 

 

 

- 진료예약 '추가' 기능으로 오늘 날짜로 예약을 추가했으나, 조회에서 보이지 않음.

- 예전 날짜들의 예약은 보이는데 오늘 날짜로 예약을 추가하면 보이지 않는다.

 

 

 

 

ㅁ 원인 

- DATE 타입 필드에서 BETWEEN을 사용할 때, 날짜 비교 시 포함되는 범위 문제.

- BETWEEN을 사용할 때 날짜 범위에 포함되는 시간을 고려하지 않으면 오늘 날짜 (2024-09-26)가 검색되지 않을 수 있다. Oracle에서 DATE 타입이 날짜뿐만 아니라 시간까지 포함하고 있기 때문입니다.

- BETWEEN 연산자를 사용할 경우, 2024-09-26의 시간까지 포함되지 않으면 검색 범위에 들어오지 않을 수 있습니다.

즉, BETWEEN '2009-01-26' AND '2024-09-26'은 2024-09-26 00:00:00까지의 데이터를 의미하므로, 만약 APPOINTMENT_DATE가 2024-09-26의 시간 부분이 포함된 값이라면 조회되지 않을 수 있습니다.

 

 

 

ㅁ 해결

 

 

 

- TRUNC로 날짜를 자르면 연월일까지만 나오고, 시분초는 잘라진다.

- TRUNC를 사용하면 DATE 타입에서 시간 정보를 무시하고 오직 날짜 부분만을 비교할 수 있다.