sql >> Database >  >> RDS >> Oracle

Gegevens ophalen binnen een datumbereik in Oracle

Stel FROMDATE/TODATE datatype is varchar2 dan wanneer je to_date . doet;

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

Het wordt dus niet '01-JAN-2080' maar '01-JAN-0080'

Zelfs als FROMDATE/TODATE datatype is date gebruik van to_date is geen goed idee;

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

Uitgang:

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

Toch is het jaar 0015 niet 2015 .

Als het datatype van uw kolommen datum is, gebruik dan trunc to get the . te krijgen datumgedeeltedon't use to_date`.

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


  1. MySQL-back-up:kan ik individuele MyISAM-tabelbestanden kopiëren naar een andere server met een andere MySQL-versie en een ander besturingssysteem?

  2. MySQL FIND_IN_SET() werkt niet zoals verwacht

  3. 1000+ API calls met 1 cronjob?

  4. MySql, Postgres, Oracle en SQLServer negeren IS GEEN NULL-filter