gpt4 book ai didi

MySQL 从过去 30 天中选择不选择今天的结果

转载 作者:行者123 更新时间:2023-11-29 05:11:34 25 4
gpt4 key购买 nike

我希望我的问题有一个非常愚蠢的解决方案,但我被卡住了。

我有此查询以获取按日期分组的过去 30 天的订单。

SELECT
DATE_FORMAT(order_date, '%Y-%m-%d') as day,
COUNT(*) AS num
FROM
orders
WHERE
(order_date >= CURDATE() - INTERVAL 30 DAY)
GROUP BY
DAY(order_date)

虽然此查询只包含昨天的结果,但不包含今天的结果。我做错了什么?

有用的信息:

  • order_date 具有 DATETIME 格式。
  • 我已经检查过,数据库中有今天日期的订单。
  • 我已尝试将 CURDATE() 更改为 NOW,或使用 BETWEEN,但均未成功。

最佳答案

试试这个:

SELECT
DATE_FORMAT(order_date, '%Y-%m-%d') as day,
COUNT(*) AS num
FROM
orders
WHERE
(order_date >= CURDATE() - INTERVAL 30 DAY)
GROUP BY day;

注意:在您的查询中,您按DAY(date) 分组。 Day 函数返回一个月中的第几天。因此,很可能是两个不同月份的同一天聚集在一个时段中。这就是您错过今天结果的原因。

关于MySQL 从过去 30 天中选择不选择今天的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38591755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com