2011-09-29 5 views
0

일 이내에 모든 레코드를 반환합니다. 누군가이 질문을 통해 나를 도울 수 있기를 바랍니다.Oracle SQL 날짜가

다음 SQL은 특정 테이블에서 현재로부터 20 일 동안의 레코드만을 반환합니다.

Last_Mod_Date = TO_DATE (SYSDATE - 20) 누군가가 나에게 지난 20 일 범위 내에서 모든 레코드를 반환하는 방법을 결정하는 데 도움이 유사한 이론을 사용하여

?

감사합니다.

+1

Last_Mod_Date> TO_DATE (SYSDATE - 20)? – toolkit

+2

예제에서 ** Last_Mod_date = TO_DATE (SYSDATE - 20) **는 "정확히 20 일 후"(밀리 초까지)라고하기 때문에 어떤 것도 일치하지 않을 가능성이 큽니다. * "TRUNC (Last_Mod_date) = TRUNC (TO_DATE (SYSDATE - 20))"** –

답변

2
select 
    * 
from 
    table 
where 
    Last_Mod_Date >= trunc(sysdate-20); 
1
SELECT * 
FROM MY_TABLE 
WHERE TO_DATE(my_ts_field) BETWEEN TO_DATE(SYSDATE-20) AND TO_DATE(SYSDATE) 
1

변화 -보다 크거나 같음 - 비교 :

Last_Mod_Date >= TO_DATE(SYSDATE-20) 
+0

to_date (sysdate) ???? –

+0

흠, 좋은 지적. 방금 원본 질문에서 복사했지만 TO_DATE는 필요하지 않습니다. 아마도 TRUNC를 효과적으로 수행하고 있기는하지만 제거하면 결과가 다소 바뀔 수 있습니다. –