Синтаксическая ошибка 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 часа (включительно); А ТАКЖЕ
  • Иметь значение 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

Любые идеи о том, что исправить?

INTERVAL '1' DAY
jarlh 10.04.2019 21:51
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
1 586
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Дополнительную информацию можно найти здесь: https://www.postgresql.org/docs/current/functions-datetime.html

Все еще неправильно... Используйте прямые кавычки только для числа. Смотрите мой комментарий.

jarlh 10.04.2019 21:53

@ярлх . . . Это верно. Postgres принимает оба.

Gordon Linoff 10.04.2019 21:59

Ой, я вижу. Извини, @matias!

jarlh 10.04.2019 22:00

Другие вопросы по теме