Có gì sai với:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Nếu bạn muốn hoạt động với số giây là interval
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Lưu ý, cách tôi sử dụng định dạng ngày tiêu chuẩn ISO 8601 YYYY-MM-DD h24:mi:ss
rõ ràng với bất kỳ ngôn ngữ nào hoặc DateStyle
cài đặt.
Cũng lưu ý rằng giá trị đầu tiên của BETWEEN
cấu trúc phải là cấu trúc nhỏ hơn. Nếu bạn không biết giá trị nào nhỏ hơn, hãy sử dụng BETWEEN SYMMETRIC
thay vào đó.
Trong câu hỏi của bạn, bạn tham khảo loại datetime timestamp
dưới dạng "ngày", "thời gian" và "khoảng thời gian". Trong tiêu đề, bạn đã sử dụng thuật ngữ "khung thời gian", tôi đã đổi nó thành "dấu thời gian". Tất cả các điều khoản này đều sai. Tự do thay đổi chúng khiến câu hỏi càng khó hiểu hơn.
Điều đó và thực tế là bạn chỉ gắn thẻ câu hỏi psql
(vấn đề hầu như không liên quan đến thiết bị đầu cuối dòng lệnh) có thể giúp giải thích tại sao không ai trả lời trong nhiều ngày. Thông thường, đó là vấn đề vài phút xung quanh đây. Tôi đã rất khó hiểu câu hỏi của bạn, đã phải đọc nó một vài lần.
Bạn cần hiểu các loại dữ liệu date
, interval
, time
và timestamp
- có hoặc không có múi giờ. Bắt đầu bằng cách đọc chương "Loại ngày / giờ" trong sách hướng dẫn này .
Thông báo lỗi cũng sẽ xuất hiện trong một thời gian dài.