2013-10-09 5 views
2

임은 타임 스탬프 필드가 특정 날짜로 =입니다 쿼리를 수행하려고하지만 내 쿼리가 작동하지 않는 특정 날짜 SQL 테이블에서 선택하는 방법 :타임 스탬프가

필드 것은 형 TIMESTAMP (6) 내가 전에 DATE/DATETIME 필드에서만 작업 한 적이있다. 여기에 여기에 저장된 값의 예는 다음과 같습니다

SELECT * FROM SomeTable WHERE timestampField = TO_DATE('2013-10-04','yyyy-mm-dd') 

내가 어떤 결과를 검색하지 그리고 난 그것이 상관이 가정입니다 : 04 간섭 단층-13 여기 12.29.53.000000000 오후

내 SELECT 문입니다 당신이 특정 일에 발생하는 모든 레코드를 원하는 경우에 그것의 타임 스탬프의 시간 부분 일치하지 않는 사실에

답변

7

다음이 작동합니다 :

SELECT * FROM SomeTable 
    WHERE timestampField >= TO_TIMESTAMP('2013-03-04', 'yyyy-mm-dd') 
    AND timestampField < TO_TIMESTAMP('2013-03-05', 'yyyy-mm-dd') 

timestampField에 색인이있는 경우이를 활용할 가능성이 높습니다. 또 다른 방법은 다음과 같습니다 당신이 TRUNC(timestampField)에 함수 기반 인덱스를 할 수 있습니다

SELECT * FROM SomeTable 
    WHERE TRUNC(timestampField) = TO_DATE('2013-03-04', 'yyyy-mm-dd') 

하는 경우.

(TRUNC는 TIMESTAMP에 적용되는 것을 참고 날짜를 반환합니다.)

+0

TO_TIMESTAMP 트릭을 수행, 감사합니다! – Kairan

관련 문제