gpt4 book ai didi

php - MySQL 天数减法在月底不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:28 25 4
gpt4 key购买 nike

我有一个简单的系统来监视和绘制来自 MySQL 服务器的统计数据。这些服务是用 PHP 编写的并返回 JSON。我坚持的问题是,今天是 2014 年 7 月 1 日……过去 7 天图表和表格的值变为零。日期计算逻辑在表输出中给出了正确的日期。我尝试手动调用服务并检查,确实JSON中的值都是零。本模块中的大部分查询使用以下内容:

 $query_string = SELECT new_user_count AS new_user_count 
FROM kpi_summaries
WHERE DATE(date) = CURDATE()-".$n."
AND data_type=1";

在一个简单的循环中,我使用这个查询字符串来获取每天最后 7 天的值。这在昨天之前一直很完美(因为我猜,从 CURDATE 中减去之后的日期都在同一个月)。

表达我的疑问的另一种方式是:如果 3 天前是上个月的日期,使用 CURDATE()-3 是否不正确?如果这是错误的,那么正确的方法是什么?我需要使用 DATE_SUB() 或类似的东西吗?

最佳答案

问题来了。 CURDATE()——不管外表和逻辑——不返回date值。它返回一个字符串或数字。引用documentation :

Returns the current date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on whether the function is used in a string or numeric context.

发生的事情是上下文需要一个数字作为 -。所以,20140701 - 3 是。 . . 20140698。这个日期不合理。它不匹配任何内容。

通过添加 interval,我们向编译器提示 CURDATE() 确实应该是一个日期并减去适当的天数。当然,使用 date_sub() 之类的函数也会有同样的效果。

关于php - MySQL 天数减法在月底不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501064/

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