MySQL查询在1小时内选择

Kim*_*Gon 0 mysql mariadb

我希望SELECT 1小时平均1分钟数据.

EX)

id |          time          | value
 1 |  2018-05-16 13:45:59   |   3
 1 |  2018-05-16 14:25:39   |   4
 1 |  2018-05-16 14:55:39   |   6
 1 |  2018-05-16 15:35:19   |   1
Run Code Online (Sandbox Code Playgroud)

我想看

id |          time          | value
 1 |  2018-05-16 13:00:00   |   3
 1 |  2018-05-16 14:00:00   |   5
 1 |  2018-05-16 15:00:00   |   1
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Mad*_*iya 7

  • 我们可以使用Date_format()函数将MySQL日期时间转换为不同的指定格式.
  • 我们可以使用转换为日期时间字符串,最多只能达到小时级别%Y-%m-%d %H:00:00.
  • 现在,我们只需要Group By对此修改的时间值,并使用Avg()函数计算平均值.

尝试:

SELECT 
  id, 
  DATE_FORMAT(time, "%Y-%m-%d %H:00:00") AS hour_time
  AVG(value) 
FROM your_table 
GROUP BY id, hour_time 
Run Code Online (Sandbox Code Playgroud)

额外细节:

  • %Y 年份,数字,四位数
  • %m 月份,数字(00..12)
  • %d 每月的某天,数字(00..31)
  • %H 小时(00..23)

有关各种可用格式说明符的完整列表,请参见:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format