Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询输出中缺少DATETIME值,然后自动填充缺少的值并获得正确的输出_Php_Mysql_Datetime_Codeigniter 3 - Fatal编程技术网

Php 查询输出中缺少DATETIME值,然后自动填充缺少的值并获得正确的输出

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

当我以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 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中 选择日期添加“2019-10-15 02:36:23”,间隔“59:59”分 此查询将获取以下范围内的秒数:

选择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 |