Php 查询输出中缺少DATETIME值,然后自动填充缺少的值并获得正确的输出
当我以1秒的时间间隔从数据库获取数据时,只有可用的DateTime interval输出计数得到,并且输出中缺少一些DateTime interval 我用计数0填充所有缺少的日期时间间隔 例如: 如果开始日期:2019-10-15 02:36:23,则 结束日期:2019-10-15 03:36:22 以1秒的间隔获取一小时数据,如果该时间不可用,则获取0个计数Php 查询输出中缺少DATETIME值,然后自动填充缺少的值并获得正确的输出,php,mysql,datetime,codeigniter-3,Php,Mysql,Datetime,Codeigniter 3,当我以1秒的时间间隔从数据库获取数据时,只有可用的DateTime interval输出计数得到,并且输出中缺少一些DateTime interval 我用计数0填充所有缺少的日期时间间隔 例如: 如果开始日期:2019-10-15 02:36:23,则 结束日期:2019-10-15 03:36:22 以1秒的间隔获取一小时数据,如果该时间不可用,则获取0个计数 mysql> select start_date,count(id) as count from live_login whe
mysql> select start_date,count(id) as count from live_login where start_date >= '2019-10-15 02:36:23' GROUP BY UNIX_TIMESTAMP(start_date) DIV 1;
+---------------------+-------+
| start_date | count |
+---------------------+-------+
| 2019-10-15 02:36:23 | 1 |
| 2019-10-15 02:36:24 | 1 |
| 2019-10-15 02:36:26 | 1 |
| 2019-10-15 02:36:55 | 1 |
| 2019-10-15 02:36:57 | 1 |
| 2019-10-15 02:37:08 | 1 |
输出需要如下所示:
您可以创建一个虚拟表,其中包含适当范围内的所有秒数,然后将它们加入摘要。 尝试按如下方式修改查询: 选择COUNTid作为计数, listofseconds.login\u日期 从…起 选择mintime+INTERVAL seq.seq SECOND作为登录日期 从…起 选择“2019-10-15 02:36:23”作为mintime, 选择日期添加“2019-10-15 02:36:23”,间隔“59:59”分\u秒作为最大时间 从live_登录 作为极小值 将seq_0_加入到seq.seq上的seq中
| start_date | count |
+---------------------+-------+
| 2019-10-15 02:36:23 | 1 |
| 2019-10-15 02:36:24 | 1 |
| 2019-10-15 02:36:25 | 0 |
| 2019-10-15 02:36:26 | 1 |
| 2019-10-15 02:36:27 | 0 |
| 2019-10-15 02:36:28 | 0 |
| 2019-10-15 02:36:29 | 0 |
| 2019-10-15 02:36:30 | 0 |
| 2019-10-15 02:36:31 | 0 |
| 2019-10-15 02:36:32 | 0 |
| 2019-10-15 02:36:33 | 0 |
| 2019-10-15 02:36:34 | 0 |
| 2019-10-15 02:36:35 | 0 |