gpt4 book ai didi

php - 获取 MySQL 中最后 X 个日期数量

转载 作者:行者123 更新时间:2023-11-30 00:52:20 25 4
gpt4 key购买 nike

我有一个 SQL 查询,用于检索过去 7 个月的付款、计算总和并按相关月份对它们进行分组...

查询的唯一问题是,由于某种原因,每月 31 日的查询会出现困惑。为了不那么含糊,它不是选取过去 7 个月(应排除当前月份),而是选取当前月份,就好像它是最后一个月一样(就好像我们已经在 1 月,而今天的实际日期是 31 日)十二月)。

SELECT DATE(date) AS month, SUM(amount_paid) AS amount FROM payments WHERE date > DATE_SUB(NOW(), INTERVAL 7 MONTH) GROUP BY YEAR(date), MONTH(date)");

因此,要分解它,结果应如下所示:

0 => 2013-05-01
1 => 2013-06-03
2 => 2013-07-01
3 => 2013-08-01
4 => 2013-09-02
5 => 2013-10-01
6 => 2013-11-01

但是,结果看起来像这样:

0 => 2013-06-03
1 => 2013-07-01
2 => 2013-08-01
3 => 2013-09-02
4 => 2013-10-01
5 => 2013-11-01
6 => 2013-12-02

我想说我发现了 MySQL date_sub 的一个错误,但我感觉到查询中的某个地方有错误。再说一次,今天是 12 月 31 日,并且只发生在任何给定月份的 31 日。

干杯!

最佳答案

仍在为您寻找答案,但我想知道这是否与此有关:

“如果添加 MONTH、YEAR_MONTH 或 YEAR,并且结果日期中的某一天大于新月份的最大天数,则该天将调整为新月份的最大天数”

mysql> SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);
->'2009-02-28'

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add

关于php - 获取 MySQL 中最后 X 个日期数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863129/

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