Cosa c'è di sbagliato in:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Se vuoi operare con un conteggio di secondi come interval
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Nota, come ho utilizzato il formato data standard ISO 8601 YYYY-MM-DD h24:mi:ss
che è inequivocabile con qualsiasi locale o DateStyle
impostazione.
Nota anche che il primo valore per BETWEEN
costrutto deve essere quello più piccolo. Se non sai quale valore è più piccolo, usa BETWEEN SYMMETRIC
invece.
Nella tua domanda fai riferimento al tipo datetime timestamp
come "data", "ora" e "periodo". Nel titolo hai usato il termine "time frame", che l'ho cambiato in "timestamp". Tutti questi termini sono sbagliati. Scambiarli liberamente rende la domanda ancora più difficile da capire.
Questo, e il fatto che hai taggato solo la domanda psql
(il problema difficilmente riguarda il terminale della riga di comando) potrebbe aiutare a spiegare perché nessuno ha risposto per giorni. Normalmente, è questione di pochi minuti da queste parti. Ho avuto difficoltà a capire la tua domanda, ho dovuto leggerla un paio di volte.
Devi comprendere i tipi di dati date
, interval
, time
e timestamp
- con o senza fuso orario. Inizia leggendo il capitolo "Tipi di data/ora" nel manuale .
Anche il messaggio di errore avrebbe fatto molta strada.