Oracle
 sql >> Base de données >  >> RDS >> Oracle

Récupérer des données dans une plage de dates dans Oracle

Supposons FROMDATE/TODATE le type de données est varchar2 puis quand vous faites to_date;

select to_date('01-JAN-80','dd-mon-yyyy') from dual;
OutPut: January, 01 0080 00:00:00

Ce ne sera donc pas '01-JAN-2080' mais '01-JAN-0080'

Même si FROMDATE/TODATE le type de données est date en utilisant to_date n'est pas une bonne idée ;

create table t(c date);
insert into t select sysdate from dual;
select c, to_date(c,'dd-mon-yyyy') from t;

Sortie :

C                           TO_DATE(C,'DD-MON-YYYY')
August, 25 2015 10:55:36    August, 25 0015 00:00:00

L'année est toujours 0015 pas 2015 .

Si le type de données de vos colonnes est date, utilisez trunc to get the partie de datedon't use to_date`.

select * 
from tbldeptdivision
where deptid=21
and trunc(sysdate) between trunc(fromdate) 
and trunc(todate)