반응형
오라클에서 날짜 시간 쿼리
저는 표에 날짜 유형 열이 있는데, 거기에 날짜를 시간과 함께 저장합니다.
다음으로 문의합니다.WHERE이런 식으로 했습니다.
select *
from conference_hall_book
where to_date(end_time,'dd/mon/yyyy hh24:mi:ss') <= to_date('26/oct/2013 15:00:00','dd/mon/yyyy hh24:mi:ss')
그러나 end_time 열에도 27/10/2013 8:00:00 AM 결과가 있습니다.
누가 제가 그 실수를 찾는 것을 도와줄 수 있습니까?
문제가 발생하는 이유는
to_date(end_time,'dd/mon/yyyy hh24:mi:ss')
To_date 함수를 잘못 사용한 것입니다.To_date는 문자열을 날짜로 변환합니다.Oracle이 이 식을 보면 데이터베이스/세션의 구성된 날짜 형식을 사용하여 end_time 값을 문자열로 자동 변환합니다.이 형식은 일반적으로 시간 부분을 포함하지 않으므로 "27/10/2013 8:00:00 AM" 값을 가진 날짜는 "27/10/2013" 문자열로 변환됩니다(데이터베이스 날짜 형식이 dd/mm/yyyy인 경우).그러면 To_date 식을 사용하면 문자열 값 "27/10/2013"이 다시 날짜로 변환됩니다.결과 날짜 값은 "27/10/2013 00:00:00"이 되므로 원래 날짜의 시간 부분을 잃게 됩니다.
간단하고 정확한 해결책은 to_date(end_time) 식을 버리고 end_time만 사용하는 것입니다.이렇게 하면 end_time에 인덱스가 있는 경우 쿼리에서 해당 인덱스를 사용할 수 있습니다.
select *
from conference_hall_book
where end_time <= to_date('26/oct/2013 15:00:00','dd/mon/yyyy hh24:mi:ss')
언급URL : https://stackoverflow.com/questions/19343225/querying-datetime-in-oracle
반응형
'programing' 카테고리의 다른 글
| MySQL JOINs는 어떤 순서로 평가됩니까? (0) | 2023.10.19 |
|---|---|
| Excel VBA에서 COM interop에 대한 관리 권한이 없는 regasm 호출 (0) | 2023.10.19 |
| django와 wsgi로 하위 디렉토리에서 워드프레스 블로그 제공 (0) | 2023.10.19 |
| AJAX 호출 사용 시 브라우저 자동 완성/자동 채우기에 저장하는 방법 (0) | 2023.10.19 |
| mysql에 대한 excel 형식 날짜 (0) | 2023.10.19 |