Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Recuperar dados dentro de um intervalo de datas no Oracle


Suponha FROMDATE/TODATE tipo de dados é varchar2 então quando você faz to_date;
select to_date('01-JAN-80','dd-mon-yyyy') from dual;
OutPut: January, 01 0080 00:00:00

Portanto, não será '01-JAN-2080' mas '01-JAN-0080'


Mesmo se FROMDATE/TODATE tipo de dados é date usando to_date não é uma boa ideia;
create table t(c date);
insert into t select sysdate from dual;
select c, to_date(c,'dd-mon-yyyy') from t;

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

Ainda assim, o ano é 0015 não 2015 .

Se o tipo de dados da sua coluna for data, use trunc to get the parte da datadon't use to_date`.
select * 
from tbldeptdivision
where deptid=21
and trunc(sysdate) between trunc(fromdate) 
and trunc(todate)