Was ist falsch an:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Wenn Sie mit einer Sekundenanzahl als interval
arbeiten möchten :
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Beachten Sie, wie ich das standardmäßige ISO 8601-Datumsformat YYYY-MM-DD h24:mi:ss
verwendet habe was mit jedem Gebietsschema oder DateStyle
Einstellung.
Beachten Sie auch, dass der erste Wert für BETWEEN
Konstrukt muss das kleinere sein. Wenn Sie nicht wissen, welcher Wert kleiner ist, verwenden Sie BETWEEN SYMMETRIC
stattdessen.
In Ihrer Frage beziehen Sie sich auf den Datetime-Typ timestamp
B. "Datum", "Uhrzeit" und "Zeitraum". Im Titel haben Sie den Begriff "Zeitrahmen" verwendet, den ich in "Zeitstempel" geändert habe. All diese Begriffe sind falsch. Wenn Sie sie frei austauschen, ist die Frage noch schwerer zu verstehen.
Das und die Tatsache, dass Sie nur die Frage psql
getaggt haben (das Problem betrifft kaum das Befehlszeilenterminal) könnte erklären, warum tagelang niemand geantwortet hat. Normalerweise ist es hier eine Sache von Minuten. Ich hatte Schwierigkeiten, Ihre Frage zu verstehen, musste sie ein paar Mal lesen.
Sie müssen die Datentypen date
verstehen , interval
, time
und timestamp
- mit oder ohne Zeitzone. Lesen Sie zunächst das Kapitel "Datums-/Zeittypen" im Handbuch .
Die Fehlermeldung hätte auch viel gebracht.