Php 将MySQL时间戳转换为天,然后按最大值排序

Php 将MySQL时间戳转换为天,然后按最大值排序,php,mysql,sql,database,join,Php,Mysql,Sql,Database,Join,尝试编写一个mySQL查询,以选择用户打开灯光的最新(**)次数 **最近一次是DB中最近一天的所有灯光打开时间 样本表: 数据库名称:LLL 表名:灯光 UserID | LightOn | LightOff ----------------------------------------------------- 3 | 2018-01-08 09:00:00 | 2018-01-08 09:03:00 3 | 2018-

尝试编写一个mySQL查询,以选择用户打开灯光的最新(**)次数

**最近一次是DB中最近一天的所有灯光打开时间

样本表: 数据库名称:LLL 表名:灯光

UserID    | LightOn               | LightOff
-----------------------------------------------------
3         | 2018-01-08 09:00:00   | 2018-01-08 09:03:00
3         | 2018-01-08 10:15:00   | 2018-01-08 10:17:00
3         | 2018-01-07 15:00:00   | 2018-01-07 15:05:00
因此,从这张表中,我们可以看出

UserID 3 (Bob) turns the light on:
2 times on January 8th (at 9AM for 3 minutes and 10:15AM for 2 minutes) &
1 times on January 7th (at 3PM for 5 mins)
我希望我的查询返回2,因为最近的1月8日有2条记录

我现在只能得到记录的数量:

SELECT COUNT(C.LightOff) AS count FROM LLL.Lights AS C 
WHERE C.UserID = 3
ORDER BY C.LightsOff DESC
我得到以下回复:

count
-------
3
我需要找出一种方法,将时间戳转换为一天,并获得与该最大日期匹配的所有记录

预期的结果是:

count
-------
2

有什么想法吗?

假设您的“点火”列中有一个合适的日期时间值
你可以得到最近的一天,加入你的队伍

  select count(*) from LLL.Lights 
  inner join  (
      select  max(date(LightOff)) max_date
      FROM LLL.Lights 
      WHERE UserID = 3
      ) t on t.max_date = date(LightOff)

假设您的lightoff列中有一个合适的datetime值
你可以得到最近的一天,加入你的队伍

  select count(*) from LLL.Lights 
  inner join  (
      select  max(date(LightOff)) max_date
      FROM LLL.Lights 
      WHERE UserID = 3
      ) t on t.max_date = date(LightOff)

为什么*最近的一天是1月8日*但不是7日?因为1月8日是表格中最近的一天为什么*最近的一天是1月8日*但不是7日?因为1月8日是表格中最近的一天类似于此处列出的方法之一:类似于此处列出的方法之一: