Vad är det för fel på:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Om du vill arbeta med ett antal sekunder som intervall
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Obs, hur jag använde standard ISO 8601-datumformatet ÅÅÅÅ-MM-DD h24:mi:ss
vilket är otvetydigt med alla språkinställningar eller DateStyle
inställning.
Observera också att det första värdet för BETWEEN
konstruktionen måste vara den mindre. Om du inte vet vilket värde som är mindre använd MELLAN SYMMETRISK
istället.
I din fråga hänvisar du till datetime-typen tidsstämpel
som "datum", "tid" och "period". I rubriken använde du termen "tidsramar", vilket jag ändrade det till "tidsstämplar". Alla dessa termer är felaktiga. Att fritt utbyta dem gör frågan ännu svårare att förstå.
Det, och det faktum att du bara taggade frågan psql
(problemet gäller knappast kommandoradsterminalen) kan hjälpa till att förklara varför ingen svarade på flera dagar. Normalt handlar det om minuter här. Jag hade svårt att förstå din fråga, var tvungen att läsa den ett par gånger.
Du måste förstå datatyperna date
, intervall
, tid
och tidsstämpel
- med eller utan tidszon. Börja med att läsa kapitlet "Datum/Time Types" i manualen .
Felmeddelandet skulle också ha gått långt.