您好我是Oracle新手。如何进行简单的声明,例如从最近30天或20天的购买日期获取产品ID?
SELECT productid FROM product
WHERE purchase_date ?
答案 0 :(得分:56)
SELECT productid FROM product WHERE purchase_date > sysdate-30
答案 1 :(得分:12)
最简单的方法是指定
SELECT productid FROM product where purchase_date> SYSDATE-30;
请记住,上面的sysdate具有时间组件,因此它将是基于现在时间的03-06-2011 8:54 AM之前的采购订单。
如果你想在比较时删除时间分数..
SELECT productid FROM product where purchase_date > trunc(sysdate-30);
并且(根据您的评论),如果您想指定特定日期,请确保您使用to_date而不是依赖默认会话参数。
SELECT productid FROM product where purchase_date> TO_DATE('03 / 06 / 2011' , 'MM / DD / YYYY')
考虑到(sysdate-30) - (sysdate)注释,对于订单,你应该只在sysdate条件下使用,除非你将来可以订购order_dates。
答案 2 :(得分:7)
在执行“purchase_date>(sysdate-30)”时要注意一个方面:“sysdate”是当前日期,小时,分钟和秒。所以“sysdate-30”并不完全是“30天前”,而是“30天前的确切时间”。
如果您的购买日期为00.00.00小时,分钟,秒,则更好:
where trunc(purchase_date)>trunc(sysdate-30)
(这不需要考虑小时,分钟和秒数。)
答案 3 :(得分:1)
SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;
Now()
返回当前的日期和时间。
答案 4 :(得分:1)
试试这个:使用此功能,您可以选择过去30天的数据
SELECT
*
FROM
product
WHERE
purchase_date > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
答案 5 :(得分:-1)
select status, timeplaced
from orders
where TIMEPLACED>'2017-06-12 00:00:00'