- 진료예약 '추가' 기능으로 오늘 날짜로 예약을 추가했으나, 조회에서 보이지 않음.
- 예전 날짜들의 예약은 보이는데 오늘 날짜로 예약을 추가하면 보이지 않는다.
ㅁ 원인
- 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 타입에서 시간 정보를 무시하고 오직 날짜 부분만을 비교할 수 있다.
'프로젝트 > 세미프로젝트-병원 종합정보시스템 사이트' 카테고리의 다른 글
[오류] 응답이 이미 커밋된 후에는, sendRedirect()를 호출할 수 없습니다. (0) | 2024.09.27 |
---|---|
[오류] 빈문자열을 insert하는 경우, java.sql.SQLIntegrityConstraintViolationException (0) | 2024.09.27 |
[오류] java.sql.SQLSyntaxErrorException (1) | 2024.09.23 |
[오답] Map 객체가 덮어씌워지는 문제 (0) | 2024.09.22 |
[오류] java.lang.Error: Unresolved compilation problem (0) | 2024.09.22 |