Esegui una query basata su un intervallo di tempo

Ciao a tutti, sto solo scrivendo una query per scoprire chi non è stato visto nell’ultimo anno sul forum, quindi volevo chiedere quale sarebbe la sintassi. Ho provato last_seen_at > 2022:06:21 e ho ricevuto un errore.

Vorrà un timestamp invece di una data, quindi qualcosa di simile:

SELECT id AS user_id,
       last_seen_at::date
FROM users
WHERE last_seen_at < '2022-06-21T00:00:00Z'
ORDER BY last_seen_at DESC

In alternativa, potresti eseguire il CAST della data:


SELECT id AS user_id,
       last_seen_at::date
FROM users
WHERE last_seen_at < CAST('2022-06-21' AS date)
ORDER BY last_seen_at DESC

Oppure potresti aggiungere un parametro per renderlo un po’ più versatile (questo ha un valore predefinito):

-- [params]
-- date :date = 21/06/2022

SELECT id AS user_id,
       last_seen_at::date
FROM users
WHERE last_seen_at < :date
ORDER BY last_seen_at DESC

5 Mi Piace

Ho riscontrato errori con il timestamp, ma potrebbe essere perché ho omesso gli apici singoli.

2 Mi Piace