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));