我需要做从HH: 05到HH: 59每小时列出MAX ()温度的mySQL
我有mySQL代码:
SELECT
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp)/3600)*3600) x,
MAX(rain_1hod)
FROM weather
WHERE STR_TO_DATE(timestamp, '%i') >= 5
GROUP BY x DESC
时间戳(datetime):2019-07-21 16:21:00
但是,如果我使用WHERE查询,则不会写入任何数据。我还尝试了针对每小时列表的另一个mySQL查询。虽然他在一个小时后写入数据,但只要我使用WHERE查询从五分钟开始写入数据,就没有写入任何内容。
SELECT timestamp, MAX(rain_1hod)
FROM meteodata
WHERE STR_TO_DATE(timestamp, '%i') >= 5
GROUP BY DATE(timestamp) DESC, hour(timestamp) DESC
LIMIT 10
发布于 2019-07-21 22:54:25
使用STR_TO_DATE()
是错误的函数。要将日期转换为字符串,您需要DATE_FORMAT()
。我还会使用DATE_FORMAT()
按小时分组:
SELECT
DATE_FORMAT(timestamp, '%Y-%m-%d %H:00:00') x,
MAX(rain_1hod)
FROM weather
WHERE DATE_FORMAT(timestamp, '%i') >= 5
GROUP BY x DESC
您也可以使用MINUTE(timestamp)
来代替DATE_FORMAT(timestamp, '%i')
。
https://stackoverflow.com/questions/57134075
复制相似问题