php - MySQL - 按时间间隔选择时间范围内的值

标签 php mysql sql

我正在尝试从 MySQL 表中选择按给定间隔分组的时间范围内的值。我的实际代码如下所示:

SET @dateformat = '%Y-%m-%d %H:%i:%s';
SET @start = '2014-05-07 17:44:15';
SET @stop = '2014-10-27 15:46:58';
SET @interval = 3600;

SELECT  
    t1.id,
    t1.timestamp,
    REPLACE(AVG(t1.A_1), '.', ',') AS avg_val1 
        FROM eco_547702f977d27 AS t1 WHERE timestamp > @start AND timestamp <= @stop GROUP BY UNIX_TIMESTAMP(timestamp) DIV @interval;

这可行,但按完整时间(18:00、19:00、20:00...)对值进行分组。我希望根据 @start 对结果进行分组 - 例如 18:44:15、19:44:15、20:44:15,...

谢谢!

最佳答案

您在这里使用了一个非常简单的技巧:

将 44:15 添加到时间值中,然后执行相同的 GROUP BY,您将获得所需组中的数据

关于php - MySQL - 按时间间隔选择时间范围内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188848/

相关文章:

mysql - 对大型表进行简单的 mySQL 查询会导致 "MySQL server has gone away"消息

php - 使用 PHP 连接 MySQL

sql - 错误 360 : Cannot modify table or view used in subquery

php - 以前我添加了颜色 : red to my code, 但是我已经删除了它,但它仍然显示在我的网站上

php - 一次登录多个网站的脚本。 CURL 和 PHP 都试过了。

php - CodeIgniter GroceryCrud set_relation 多个表中的相同id

mysql - 带子查询的 select 内的 where 子句

sql - 如何以字符串格式检索 sql server SID?

php - Laravel - 我可以在 Controller 中重复使用验证器实例吗?

php - Laravel 响应 Cache-Control header 始终包含 'no-cache'