sql >> Databáze >  >> RDS >> Oracle

Načíst data v rámci časového rozsahu v Oracle

Předpokládejme FROMDATE/TODATE datový typ je varchar2 poté, když uděláte to_date;

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

Takže to nebude '01-JAN-2080' ale '01-JAN-0080'

I když FROMDATE/TODATE datový typ je date pomocí to_date není dobrý nápad;

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

Výstup:

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

Stále je rok 0015 ne 2015 .

Pokud je datovým typem vašeho sloupce datum, použijte trunc to get the část datadon't use k_datu`.

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


  1. cx_Oracle:Použití typů RECORD PL/SQL jako argumentů pro uložené procedury

  2. Failover &Failback pro PostgreSQL v Microsoft Azure

  3. Jak vrátit sadu výsledků na základě jiných řádků

  4. Získejte poslední řádek PER Group