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

So sánh ngày của Oracle trong mệnh đề where

Không đúng, DATE kiểu dữ liệu không có định dạng; nó được lưu trữ nội bộ trong các bảng dưới dạng 7-byte (năm là 2 byte và tháng, ngày, giờ, phút và giây mỗi thứ là 1 byte). Giao diện người dùng bạn đang sử dụng (tức là SQL / PLUS, SQL Developer, Toad, v.v.) sẽ xử lý định dạng của một DATE từ định dạng nhị phân sang định dạng con người có thể đọc được. Trong SQL / Plus (hoặc SQL Developer), định dạng này dựa trên NLS_DATE_FORMAT tham số phiên .

Nếu DATE là đầu vào chỉ sử dụng ngày, tháng và năm thì thành phần thời gian (có thể) sẽ được đặt thành 00:00:00 (nửa đêm).

Giả sử thành phần thời gian đối với bạn cột DOJ luôn là nửa đêm thì:

SELECT COUNT(*)
FROM   students
WHERE  doj = TO_DATE( your_param, 'dd/mm/yyyy' )

Nếu không phải lúc nào cũng là nửa đêm thì:

SELECT COUNT(*)
FROM   students
WHERE  TRUNC( doj ) = TO_DATE( your_param, 'dd/mm/yyyy' )

hoặc:

SELECT COUNT(*)
FROM   students
WHERE  doj >= TO_DATE( your_param, 'dd/mm/yyyy' )
AND    doj <  TO_DATE( your_param, 'dd/mm/yyyy' ) + INTERVAL '1' DAY


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp Oracle còn lại kết hợp ba hoặc nhiều bảng

  2. Perl DBI Error Msg:Không thể gọi phương thức selectcol_arrayref trên một giá trị không xác định

  3. ResultSet.getString (Ngày) khác nhau dựa trên trình điều khiển

  4. Bảng đột biến trong Oracle 11 do một hàm gây ra

  5. không thể tải ROracle:không thể tải đối tượng được chia sẻ ROracle.so:libclntsh.so.11.1 Không có tệp hoặc thư mục như vậy