시간 범위에 기반하여 쿼리 실행하기

여러분 안녕하세요, 최근 1년 동안 포럼에 접속하지 않은 사용자를 찾기 위해 쿼리를 작성하고 있습니다. 그래서 어떤 문법을 사용해야 하는지 여쭤봅니다. last_seen_at > 2022:06:21을 시도해 보았지만 오류가 발생했습니다.

날짜가 아닌 타임스탬프가 필요하므로, 다음과 같은 형식을 사용해야 합니다:

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

대신, 날짜를 CAST할 수도 있습니다:


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

또는 매개변수를 추가하여 더 유연하게 사용할 수도 있습니다(이 예시에는 기본값이 있습니다):

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

타임스탬프에서 오류가 발생했는데, 아마도 작은따옴표를 누락해서 그런 것 같습니다.