我想查询过去5年内销售的所有产品 可以这样做:
select * from products
where time between sysdate-1826 and sysdate
但它还有一种更好的方法,而不是计算所有日期并从sysdate
中减去它?
答案 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年