Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy xuất dữ liệu trong một phạm vi ngày trong Oracle

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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi truy vấn tiên tri thành các loại do người dùng xác định trong pl / sql

  2. Oracle- Chuỗi phân tách được phân cách bằng dấu phẩy (chuỗi chứa khoảng trắng và dấu phẩy liên tiếp)

  3. Làm cách nào để tăng bộ đệm dbms_output?

  4. Oracle SQl Dev, cách tính số ngày trong tuần giữa 2 ngày

  5. Cách viết mã trong Oracle SQL (như 'CCYYMMDD' thành 102)