Ejecutar una consulta basada en un período de tiempo

Hola a todos, solo estoy escribiendo una consulta para averiguar quién no ha sido visto en el último año en el foro, así que quería preguntar cuál sería la sintaxis. Intenté last_seen_at > 2022:06:21 y obtuve un error.

Querrá una marca de tiempo en lugar de una fecha, así que algo como esto:

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

Alternativamente, podría CONVERTIR la fecha:


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

O podría añadir un parámetro para hacerlo un poco más versátil (este tiene un valor predeterminado):

-- [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 Me gusta

He recibido errores con la marca de tiempo, pero puede ser porque me faltaron las comillas simples.

2 Me gusta