我正在开发一个报告模块。我一直在比较某些代理本周和上周的报告。
本周报表查询如下
SELECT COUNT(created_at) AS cust_count_new, agency_id, created_at FROM customers WHERE
(customers.created_at >= DATE(NOW()) - INTERVAL 6 DAY AND customers.created_at
< DATE(NOW()) + INTERVAL 1 DAY
上周报表查询如下
SELECT COUNT(created_at) AS cust_count_old, agency_id, created_at FROM customers WHERE
(customers.created_at >= DATE(NOW()) - INTERVAL 13 DAY AND customers.created_at
< DATE(NOW()) - INTERVAL 6 DAY
我正在做的是比较本周和上周的报告。现在我如何将查询更改为本月和上个月(30 天)。我有点困惑,所以非常感谢任何帮助。
最佳答案
您可以在 INTERVAL
中使用 MONTH
作为单位。 。另外,您可以使用CURDATE()
而不是 DATE(NOW())
来获取当前日期。
这个月报告查询将是:
SELECT COUNT(created_at) AS cust_count_new,
agency_id,
created_at
FROM customers
WHERE customers.created_at >= CURDATE() - INTERVAL 1 MONTH AND
customers.created_at < CURDATE() + INTERVAL 1 DAY
上月报告查询如下
SELECT COUNT(created_at) AS cust_count_new,
agency_id,
created_at
FROM customers
WHERE customers.created_at >= CURDATE() - INTERVAL 2 MONTH AND
customers.created_at < (CURDATE() - INTERVAL 1 MONTH) + INTERVAL 1 DAY
关于PHP/MYSQL 本月和上个月的比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53274791/