我有一张桌子,在5分钟内存储多年的weatherdata。现在我需要一个温度最低的结果,每个时间段从晚上8点到次日早上8点。
或换句话说:每晚(20:00 - 08:00)的最低温度。
表:
datetime temp
2015-04-01 00:00 21.2
2015-04-01 00:05 21.1
2015-04-01 00:10 20.8
...
2015-04-02 00:00 22.6
2015-04-02 00:05 22.2
我的基本方法是:
SELECT MIN(temp)
FROM weathertable
WHERE datetime BETWEEN '2015-04-01 18:00' AND '2015-04-02 08:00'
但我需要一个没有固定日期的每个时期的结果。
感谢您的帮助
答案 0 :(得分:1)
SELECT
MIN(temp)
FROM
weathertable
WHERE
TIME(FROM_UNIXTIME(UNIX_TIMESTAMP(datetime)-(10*60*60))) BETWEEN '08:00:00' AND '22:00:00'
GROUP BY
DATE(FROM_UNIXTIME(UNIX_TIMESTAMP(datetime)-(10*60*60)));
答案 1 :(得分:0)
试试这个:
获取上一个日期:选择子数据(curdate(),1);
SELCT min(temp)
FROM *tablename*
where
date between
concat(subdate(curdate(),1),' ','20:00:00') and concat(curdate(),' ','08:00:00');