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