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

Làm cách nào để so sánh hai giá trị DATE chỉ dựa trên phần ngày tháng trong Oracle?

Đối với điều kiện này, bạn chỉ cần TRUNC bên tay phải:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Tại sao? Bởi vì nếu TRUNC (date_occured) muộn hơn TRUNC (CURRENT_DATE - 30), thì bất kỳ thời điểm nào sau TRUNC (date_occured) cũng phải muộn hơn TRUNC (CURRENT_DATE - 30).

Rõ ràng là luôn đúng rằng date_occured> =TRUNC (date_occured) (hãy nghĩ về nó).

Logic nói rằng nếu A> =B và B> =C thì nó theo sau rằng A> =C

Bây giờ thay thế:

  • A:date_occured
  • B:TRUNC (date_occured)
  • C:TRUNC (CURRENT_DATE - 30)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Oracle để tìm chuỗi không chứa ký tự

  2. Thủ tục hoặc công việc Oracle để sao chép dữ liệu tự động từ một lược đồ này sang một lược đồ khác dựa trên dòng thời gian

  3. Oracle tạo bảng bằng mệnh đề with

  4. Bao gồm tên cột trong kết quả của truy vấn SQL Oracle?

  5. Kết nối với Oracle qua TNS không hoạt động