Как перечислить записи с датой за последние 10 дней?
SELECT Table.date FROM Table WHERE date > current_date - 10;
это работает на PostgreSQL?
5 ответов:
Да это действительно работает в PostgreSQL (предполагая столбец"дата" имеет тип
date
) Почему бы тебе просто не попробовать?стандартный формат ANSI SQL будет:
SELECT Table.date FROM Table WHERE date > current_date - interval '10' day;
Я предпочитаю этот формат, поскольку он облегчает чтение (но это то же самое, что и
current_date - 10
).
http://www.postgresql.org/docs/current/static/functions-datetime.html показывает операторы, которые можно использовать для работы с датами и временем (и с интервалом).
Итак, вы хотите
SELECT "date" FROM "Table" WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
операторы / функции выше подробно описаны:
мое понимание от моего тестирования (и PostgreSQL dox) заключается в том, что кавычки должны быть сделаны иначе, чем другие ответы, а также должны включать "день" следующим образом:
SELECT Table.date FROM Table WHERE date > current_date - interval '10 day';
продемонстрировано здесь (вы должны быть в состоянии запустить это на любом Postgres db):
SELECT DISTINCT current_date, current_date - interval '10' day, current_date - interval '10 days' FROM pg_language;
результат:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00