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

Hent data inden for et datointerval i Oracle

Antag FROMDATE/TODATE datatypen er varchar2 når du derefter gør to_date;

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

Så det vil ikke være '01-JAN-2080' men '01-JAN-0080'

Også selvom FROMDATE/TODATE datatypen er date ved at bruge to_date er ikke en god 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 er stadig 0015 ikke 2015 .

Hvis din kolonnes datatype er dato, så brug trunc to get the datodeldon't use til_dato`.

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


  1. Kan jeg bruge flere markører på én forbindelse med pyodbc og MS SQL Server?

  2. Importer en excel (.csv) til MySQL ved hjælp af PHP-kode og en HTML-formular

  3. Sådan bruges JSTL sql tag

  4. Lær at udføre produktanalyse med SQL Server fuldtekstsøgning. Del 2