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

Chọn từ bảng bằng cách chỉ biết ngày mà không có thời gian (ORACLE)

DATE là một từ khóa dành riêng trong Oracle, vì vậy tôi đang sử dụng tên cột your_date thay vào đó.

Nếu bạn có chỉ mục trên your_date , Tôi sẽ sử dụng

WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
  AND your_date <  TO_DATE('2010-08-04', 'YYYY-MM-DD')

hoặc BETWEEN :

WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
                    AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

Nếu không có chỉ mục hoặc nếu không có quá nhiều bản ghi

WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')

phải đủ. TRUNC không có tham số sẽ xóa giờ, phút và giây khỏi DATE .

Nếu hiệu suất thực sự quan trọng, hãy cân nhắc đặt Function Based Index trên cột đó:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xây dựng danh sách giá trị được phân tách bằng dấu phẩy trong câu lệnh Oracle SQL

  2. Oracle SQL, nối nhiều cột + thêm văn bản

  3. Hàm COALESCE () trong Oracle

  4. Nhận truy vấn từ tệp trong SPRING BOOT bằng @Query

  5. Bộ sưu tập PL / SQL:Bảng lồng nhau trong cơ sở dữ liệu Oracle