Подтвердить что ты не робот

Как перечислить записи с датой за последние 10 дней?

SELECT Table.date FROM Table WHERE date > current_date - 10;

Это работает на PostgreSQL?

4b9b3361

Ответ 1

Да, это работает в PostgreSQL (при условии, что столбец "дата" имеет тип данных date) Почему бы вам просто не попробовать?

Стандартный формат ANSI SQL:

SELECT Table.date 
FROM Table 
WHERE date > current_date - interval '10' day;

Я предпочитаю этот формат, так как он упрощает чтение (но это то же самое, что и current_date - 1)

Ответ 2

http://www.postgresql.org/docs/current/static/functions-datetime.html показывает операторы, которые вы можете использовать для работы с датами и временем (и интервалами).

Итак, вы хотите

SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');

Операторы/функции, описанные выше, подробно описаны:

Ответ 3

Мое понимание из моего тестирования (и 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

Ответ 4

Я бы проверял типы данных.

current_date имеет тип данных "date", 10 - число, а Table.date - вам нужно посмотреть на свою таблицу.

Ответ 5

вы также можете использовать:

SELECT Table.date
  FROM Table 
  WHERE date between current_date and current_date - interval '10 day';