Hvad er der galt med:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Hvis du vil arbejde med et tæller af sekunder som interval
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Bemærk, hvordan jeg brugte standard ISO 8601-datoformatet ÅÅÅÅ-MM-DD h24:mi:ss
hvilket er utvetydigt med enhver lokalitet eller DateStyle
indstilling.
Bemærk også, at den første værdi for BETWEEN
konstruktionen skal være den mindste. Hvis du ikke ved, hvilken værdi der er mindre, brug MELLEM SYMMETRIC
i stedet.
I dit spørgsmål henviser du til datetime-typen timestamp
som "dato", "tid" og "periode". I titlen brugte du udtrykket "tidsrammer", som jeg ændrede det til "tidsstempler". Alle disse udtryk er forkerte. Frit at udveksle dem gør spørgsmålet endnu sværere at forstå.
Det, og det faktum, at du kun taggede spørgsmålet psql
(problemet vedrører næppe kommandolinjeterminalen) kan hjælpe med at forklare, hvorfor ingen svarede i flere dage. Normalt er det et spørgsmål om minutter her omkring. Jeg havde svært ved at forstå dit spørgsmål, måtte læse det et par gange.
Du skal forstå datatyperne date
, interval
, tid
og tidsstempel
- med eller uden tidszone. Start med at læse kapitlet "Dato/tidstyper" i manualen .
Fejlmeddelelse ville også have nået langt.