查询过去5年

时间:2012-02-08 16:03:00

标签: sql database oracle time

我想查询过去5年内销售的所有产品 可以这样做:

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

但它还有一种更好的方法,而不是计算所有日期并从sysdate中减去它?

2 个答案:

答案 0 :(得分:20)

SELECT *
  FROM products
 WHERE date_column >= add_months( sysdate, -12*5 )

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

将为您提供过去5年中的所有行(尽管您通常希望添加TRUNC来删除时间部分,除非您真的关心是否在2007年2月8日创建了一行早上或下午)。

答案 1 :(得分:0)

select * from products
where time > DATE_SUB(NOW(), INTERVAL 5 YEAR)

Date sub将从现在开始减去5年