Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abrufen von Daten innerhalb eines Datumsbereichs in Oracle

Angenommen FROMDATE/TODATE Datentyp ist varchar2 dann, wenn Sie to_date tun;

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

Es wird also nicht '01-JAN-2080' sein aber '01-JAN-0080'

Auch wenn FROMDATE/TODATE Datentyp ist date Verwenden Sie to_date ist keine gute Idee;

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

Ausgabe:

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

Das Jahr ist immer noch 0015 nicht 2015 .

Wenn Ihr Spaltendatentyp date ist, verwenden Sie trunc to get the zu erhalten Datumsteildon't use to_date`.

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