SELECT Table.date FROM Table WHERE date > current_date - 10;
Это работает на PostgreSQL?
SELECT Table.date FROM Table WHERE date > current_date - 10;
Это работает на PostgreSQL?
Да, это работает в PostgreSQL (при условии, что столбец "дата" имеет тип данных date
)
Почему бы вам просто не попробовать?
Стандартный формат ANSI SQL:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Я предпочитаю этот формат, так как он упрощает чтение (но это то же самое, что и current_date - 1)
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
Я бы проверял типы данных.
current_date имеет тип данных "date", 10 - число, а Table.date - вам нужно посмотреть на свою таблицу.
вы также можете использовать:
SELECT Table.date
FROM Table
WHERE date between current_date and current_date - interval '10 day';