sql >> Databasteknik >  >> RDS >> Oracle

Hämta data inom ett datumintervall i Oracle

Antag FROMDATE/TODATE datatypen är varchar2 sedan när du gör to_date;

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

Så det kommer inte att vara '01-JAN-2080' men '01-JAN-0080'

Även om FROMDATE/TODATE datatypen är date med to_date är ingen bra idé;

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

OutPut:

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

Året är fortfarande 0015 inte 2015 .

Om din kolumns datatyp är datum, använd trunc to get the datumdeldon't use to_date`.

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


  1. Ordna om databaspostraderna genom front-end med php

  2. Gruppera rader efter årsbandintervall

  3. Vad är detta för fel? Databasfrågan misslyckades:data trunkerades för kolumn kolumnnamn på rad 1

  4. Skapar du en ny tabell i Laravel baserat på användarinmatning?