Синтаксическая ошибка Postgres на интервале времени - PullRequest
0 голосов
/ 10 апреля 2019

Postgres здесь;У меня есть таблица Users, которая имеет следующие поля:

create table Users ( 
    id bigserial primary key, 
    isAdmin boolean not null default false, 
    beginDate timestamp with time zone not null, 
    updated timestamp with time zone
);

Я хочу написать запрос, который выбирает любые записи Users, которые:

  • Имеют beginDate значение за последние 24 часа (включительно); AND
  • Имеют значение updated, которое старше (исключительно), чем 24 часа

Моя лучшая попытка на данный момент:

select *
from
Users
where
beginDate >= NOW() - INTERVAL 1 DAY and
updated < NOW() - INTERVAL 1 DAY

Но это приводит к следующей ошибке:

ERROR: syntax error at or near "1"
  Position: 59

beginDate >= NOW() - INTERVAL 1 DAY and
                              ^
1 statement failed.

Execution time: 0.03s

Есть идеи, что это за исправление?

1 Ответ

4 голосов
/ 10 апреля 2019

Правильный синтаксис будет такой:

beginDate >= NOW() - INTERVAL '1 DAY' and
updated < NOW() - INTERVAL '1 DAY'

Вы можете найти больше информации здесь: https://www.postgresql.org/docs/current/functions-datetime.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...