Oracle
 sql >> Database >  >> RDS >> Oracle

Recupera i dati all'interno di un intervallo di date in Oracle

Assumere FROMDATE/TODATE il tipo di dati è varchar2 poi quando esegui to_date;

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

Quindi non sarà '01-JAN-2080' ma '01-JAN-0080'

Anche se FROMDATE/TODATE il tipo di dati è date usando to_date non è una buona idea;

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

Uscita:

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

Eppure l'anno è 0015 non 2015 .

Se il tipo di dati delle colonne è data, usa trunc to get the porzione di datadon't use a_data`.

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