我有一个表,上面有日期和值,像这样:
+----------------------+-------+
| time | value |
+----------------------+-------+
| 2020-02-28 08:30:20 | 30 |
| 2020-02-28 08:30:25 | 15 |
| 2020-02-28 08:30:30 | 30 |
| 2020-02-28 08:30:35 | 10 |
+----------------------+-------+
我需要最近7天的日期,每5分钟一次,没有秒。
+-------------------+-------+
| time | value |
+-------------------+-------+
| 2020-02-28 08:30 | 30 |
| 2020-02-28 08:35 | 5 |
| 2020-02-28 08:40 | 30 |
| 2020-02-28 08:45 | 4 |
+-------------------+-------+
是否可以创建这样的查询?
答案 0 :(得分:0)
您可以使用类似这样的内容:
margin
例如:
SELECT DATE_FORMAT($column, '%H:%i'),`value` FROM $table WHERE MOD(MINUTE($Whenـyouـwantـitـtoـstart),5) = 0 AND `time` >= DATE(NOW()) - INTERVAL 7 DAY
如果您希望没有几秒钟的时间,应该使用:
SELECT DATE_FORMAT(`time`, '%H:%i'),`value` FROM users WHERE MOD(MINUTE((NOW()),5) = 0
AND `time` >= DATE(NOW()) - INTERVAL 7 DAY
在下面的查询中选择最近7天的行
DATE_FORMAT(`time`, '%H:%i')
和MOD(N,M)函数返回一个数字的余数除以另一个数字。您可以像这样使用它:
WHERE `time` >= DATE(NOW()) - INTERVAL 7 DAY