Oracle
 sql >> база данни >  >> RDS >> Oracle

Извличане на данни в рамките на период от време в Oracle

Да приемем FROMDATE/TODATE типът данни е varchar2 тогава, когато направите to_date;

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

Така че няма да бъде '01-JAN-2080' но '01-JAN-0080'

Дори ако FROMDATE/TODATE типът данни е date използвайки to_date не е добра идея;

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

Изход:

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

Все пак годината е 0015 не 2015 .

Ако типът данни на вашите колони е дата, тогава използвайте trunc to get the част от дататаdon't use to_date`.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alter session забавя заявката чрез Hibernate

  2. Как да заменя конкретни стойности в колона на база данни на Oracle?

  3. Не мога да видя Oracle Data Provider за .NET в Visual Studio 2012 RC

  4. Вземете стойност от FieldA, изпратете към функцията db, върнете стойността към FieldB

  5. Не може да се извлече идентификатора на последния вмъкнат ред в Hibernate с помощта на Oracle