¿Qué tiene de malo:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Si desea operar con un recuento de segundos como interval
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Tenga en cuenta cómo utilicé el formato de fecha estándar ISO 8601 YYYY-MM-DD h24:mi:ss
que no es ambiguo con cualquier configuración regional o DateStyle
ajuste.
Tenga en cuenta también que el primer valor para BETWEEN
la construcción debe ser la más pequeña. Si no sabe qué valor es menor, use BETWEEN SYMMETRIC
en su lugar.
En su pregunta, se refiere al tipo de fecha y hora timestamp
como "fecha", "hora" y "período". En el título, usó el término "marcos de tiempo", que cambié por "marcas de tiempo". Todos estos términos son incorrectos. Intercambiarlos libremente hace que la pregunta sea aún más difícil de entender.
Eso, y el hecho de que solo etiquetó la pregunta psql
(el problema apenas se refiere a la terminal de línea de comandos) podría ayudar a explicar por qué nadie respondió durante días. Normalmente, es cuestión de minutos por aquí. Me costó entender tu pregunta, tuve que leerla un par de veces.
Debe comprender los tipos de datos date
, interval
, time
y timestamp
- con o sin zona horaria. Comience leyendo el capítulo "Tipos de fecha/hora" en el manual .
El mensaje de error también habría sido de gran ayuda.