Trong Oracle, NGÀY là một thời điểm. Nó luôn có một thành phần thời gian với độ chính xác đến từng giây. todate('08-Jun-2010', 'dd-Mon-yyyy')
trong Oracle giống như todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Vì vậy, nếu bạn chọn các hàng cho đến ngày đó, bạn sẽ không nhận được bất kỳ hàng nào vào ngày đó có thành phần thời gian không bằng 00:00
.
Nếu bạn muốn chọn tất cả các hàng lên đến và bao gồm 08-JUN-2010
, Tôi khuyên bạn nên sử dụng:
< to_date('09-06-2010', 'dd-MM-yyyy')
hoặc
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Lưu ý - Tôi đã sửa định dạng ngày của bạn:bạn cần sử dụng MON
nếu bạn muốn sử dụng tên tháng viết tắt. Tôi khuyên bạn nên sử dụng MM
thay vào đó, để bạn không gặp lỗi khi ai đó thay đổi cài đặt ứng dụng khách (NLS_DATE_LANGUAGE
). Cũng thích sử dụng YYYY
thay vì YY
.