2012-07-12 2 views
4

Oracle에서이 날짜를 수행하는 방법은 열 유형이 datetime인지 비교하는 방법입니까? 문자열 형식을 'MM/dd/yyyy'로 유지하고 싶습니다.Oracle datetime은 형식에 따라 비교합니다.

어떻게하는가?

덕분에 그 날짜를 가정

select * from my_tbl 
where mycol >= '07/11/2012' 
+0

들어오는 날짜 매개 변수를 datetime으로 변환하고 싶습니다. 아마도 'TO_DATE()'같은 것으로 변환했을 것입니다. 그리고 모든 범위는 하한값, 상한값을 포함해야 함을 기억하십시오. 실제로 컨텍스트에 따라 응용 프로그램 코드에서 타임 스탬프로 시작하는 것이 더 나을 수도 있습니다. 어떤 경우 든 테이블의 모든 행을 변환하는 것은 끔찍한 생각입니다. –

답변

7

7 월 11 일 의미 : 당신에 대한 값을 입력하는 방법에 따라

select * 
from my_tbl 
where mycol >= to_date('07/11/2012', 'DD/MM/YYYY'); 

:

select * 
from my_tbl 
where mycol >= to_date('07/11/2012', 'MM/DD/YYYY'); 

을 해당 날짜는 11 월 7 일해야하는 경우 mycol, 시간 부분도 없애고 싶을 수도 있습니다 :

select * 
from my_tbl 
where trunc(mycol) >= to_date('07/11/2012', 'DD/MM/YYYY'); 
+0

세 번째'SELECT'의 특정 예제에서'TRUNC'는'mycol'에있을 수있는 인덱스의 사용을 배제합니다. 'TRUNC (mycol)'이 자정에 어떤 날짜보다 크거나 같으면'mycol'은 항상 같은 날짜 값보다 크거나 같기 때문에'TRUNC'는 불필요합니다. – Tebbe

관련 문제