Запросы за последние 5 лет - PullRequest
10 голосов
/ 08 февраля 2012

Я хочу запросить все товары, проданные за последние 5 лет.
Это можно сделать так:

select * from products
where time between sysdate-1826 and sysdate

Но есть и более хороший способ, вместо того, чтобы вычислять все дни и вычитать его из sysdate?

Ответы [ 2 ]

21 голосов
/ 08 февраля 2012
SELECT *
  FROM products
 WHERE date_column >= add_months( sysdate, -12*5 )

или

SELECT *
  FROM products
 WHERE date_column >= sysdate - interval '5' year

предоставит вам все строки за последние 5 лет (хотя вы, как правило, хотите добавить TRUNC, чтобы удалить часть времени, если вы действительно не заботитесь, была ли строка создана 8 февраля 2007 года утром или во второй половине дня).

0 голосов
/ 08 февраля 2012
select * from products
where time > DATE_SUB(NOW(), INTERVAL 5 YEAR)

Дата будет вычтена через 5 лет

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