SQL 查询获取过去 30 天的数据?

发布于 2024-10-20 13:21:33 字数 140 浏览 1 评论 0原文

您好,我是 Oracle 新手。如何做一个简单的声明,例如获取最近 30 或 20 天购买日期的产品 ID?

SELECT productid FROM product
WHERE purchase_date ? 

Hi I am new to Oracle. How do I do a simple statement, for example get product id from the last 30, or 20 days purchase date?

SELECT productid FROM product
WHERE purchase_date ? 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

空城旧梦 2024-10-27 13:21:33
SELECT productid FROM product WHERE purchase_date > sysdate-30
SELECT productid FROM product WHERE purchase_date > sysdate-30
御守 2024-10-27 13:21:33

最简单的方法是指定

从产品中选择产品 ID,其中
购买日期> sysdate-30;

请记住,上面的系统日期包含时间部分,因此根据现在的时间,它将是晚于 03-06-2011 8:54 AM 的采购订单。

如果您想在比较时删除时间成分。

SELECT productid FROM product where purchase_date > trunc(sysdate-30);

并且(根据您的评论),如果您想指定特定日期,请确保使用 to_date 而不是依赖默认会话参数。

从产品中选择产品 ID,其中
购买日期>
to_date('03/06/2011','月/日/年')

考虑到 (sysdate-30) - (sysdate) 之间的注释,对于订单,您应该可以仅使用 sysdate 条件,除非您可以下订单order_dates 将来。

The easiest way would be to specify

SELECT productid FROM product where
purchase_date > sysdate-30;

Remember this sysdate above has the time component, so it will be purchase orders newer than 03-06-2011 8:54 AM based on the time now.

If you want to remove the time conponent when comparing..

SELECT productid FROM product where purchase_date > trunc(sysdate-30);

And (based on your comments), if you want to specify a particular date, make sure you use to_date and not rely on the default session parameters.

SELECT productid FROM product where
purchase_date >
to_date('03/06/2011','mm/dd/yyyy')

And regardng the between (sysdate-30) - (sysdate) comment, for orders you should be ok with usin just the sysdate condition unless you can have orders with order_dates in the future.

西瑶 2024-10-27 13:21:33

执行“purchase_date>(sysdate-30)”时要注意一个方面:“sysdate”是当前的日期、时、分、秒。因此“sysdate-30”并不完全是“30 天前”,而是“30 天前的这个时间”。

如果您的购买日期的小时、分钟、秒为 00.00.00,则更好:(

where trunc(purchase_date)>trunc(sysdate-30)

这不考虑小时、分钟和秒)。

Pay attention to one aspect when doing "purchase_date>(sysdate-30)": "sysdate" is the current date, hour, minute and second. So "sysdate-30" is not exactly "30 days ago", but "30 days ago at this exact hour".

If your purchase dates have 00.00.00 in hours, minutes, seconds, better doing:

where trunc(purchase_date)>trunc(sysdate-30)

(this doesn't take hours, minutes and seconds into account).

嘿嘿嘿 2024-10-27 13:21:33

试试这个:使用它您可以选择过去 30 天的数据

SELECT
    *
FROM
    product
WHERE
    purchase_date > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)

Try this : Using this you can select data from last 30 days

SELECT
    *
FROM
    product
WHERE
    purchase_date > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
清风疏影 2024-10-27 13:21:33
SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;

Now() 返回当前日期和时间。

SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;

Now() returns the current Date and Time.

沐歌 2024-10-27 13:21:33
select status, timeplaced 
from orders 
where TIMEPLACED>'2017-06-12 00:00:00' 
select status, timeplaced 
from orders 
where TIMEPLACED>'2017-06-12 00:00:00' 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文