Giả sử FROMDATE/TODATE
kiểu dữ liệu là varchar2
sau đó khi bạn làm to_date
;
select to_date('01-JAN-80','dd-mon-yyyy') from dual;
OutPut: January, 01 0080 00:00:00
Vì vậy, nó sẽ không phải là '01-JAN-2080'
nhưng '01-JAN-0080'
Ngay cả khi FROMDATE/TODATE
kiểu dữ liệu là date
sử dụng to_date
không phải là một ý kiến hay;
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
Vẫn là năm 0015
không phải 2015
.
Nếu kiểu dữ liệu cột của bạn là ngày thì hãy sử dụng trunc to get the
phần ngày tháng don't use
đến_date`.
select *
from tbldeptdivision
where deptid=21
and trunc(sysdate) between trunc(fromdate)
and trunc(todate)