PHP/SQL 显示过去 60 天以上的行

标签 php mysql sql

我有一个带有日期时间列的表格(Y-m-d H:i:s)

我希望能够显示日期时间列过去 60 天以上的所有行

我已经尝试过,但它似乎没有显示正确的行:

SELECT * from customer_communication WHERE datetime < DATE_SUB(DATE(now()), INTERVAL 60 DAY) order by datetime DESC

此表中也有一个 customer 列,因为每个客户都有多行。每次联系他们时,它都会为该客户添加一个新行,因此我需要按客户分组还是按日期时间分组?

最佳答案

你的问题有点不清楚。我将其解释为“获取过去 60 天内没有进行过沟通的所有客户”。其逻辑是由客户聚合并查看最大通信日期:

SELECT customer
from customer_communication
group by customer
having max(datetime) < DATE_SUB(DATE(now()), INTERVAL 60 DAY)
order by max(datetime) DESC;

关于PHP/SQL 显示过去 60 天以上的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21030880/

相关文章:

sql - 如何在具有大量记录的表中优化分组依据

MySQL : Is there a way to reserve x connections for a given user?

mysql - 如何使用一个 MySQL 查询从我的表中获取所有最新的 "versions"?

SQL 查询需要查找不同的 ID,可能使用 IN 和 NOT IN

php - 需要有关显示记录的帮助

mysql - 如何在 SQL 中为贝叶斯网络建模,或者更一般地说,为有向加权图建模?

php - MySQL -- fatal error : Call to a member function bind_param() on a non-object

php - Phalcon PHP 调度程序转发不起作用

php - jquery 返回 false 后表单不再提交

php - 如何使用 PHP 验证电话号码?