Tôi đã phải đối mặt với một kịch bản kỳ lạ khi so sánh giữa các ngày trong postgresql (phiên bản 9.2.4 trong windows). Tôi có một cột trong bảng của mình nói update_date với loại 'dấu thời gian không có múi giờ'. Khách hàng có thể tìm kiếm trên trường này chỉ với ngày (ví dụ: 2013-05-03) hoặc ngày theo thời gian (ví dụ: 2013-05-03 12:20:00). Cột này có giá trị là dấu thời gian cho tất cả các hàng hiện tại và có cùng một phần ngày (2013-05-03) nhưng khác nhau về phần thời gian.
Khi tôi so sánh qua cột này, tôi nhận được kết quả khác nhau. Giống như sau:
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date < '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-04' -> results found
select * from table where update_date >= '2013-05-03' -> results found
Câu hỏi của tôi là làm thế nào tôi có thể thực hiện truy vấn đầu tiên để có kết quả, ý tôi là tại sao truy vấn thứ 3 hoạt động mà không phải là truy vấn đầu tiên?
Ai có thể giúp tôi với điều này? Cảm ơn trước.
'2013-05-03'::date
và'1 day'::interval
) PostgreQuery có cụ thể không?