gpt4 book ai didi

mysql - 选择中间有数据的日期

转载 作者:行者123 更新时间:2023-11-30 00:25:23 25 4
gpt4 key购买 nike

我有 TodayRainSoFar 列,每分钟都会填充到数据库中,我想找出本月下雨的最长持续时间,即何时开始下雨以及持续了多长时间。

例如2014-04-01 08:00开始下雨,一直下雨到2014-04-05 10:00

我在组合查询时遇到问题。

// this will select rows when there was any rain this month
SELECT LogDateTime, TodayRainSoFar
FROM sibeniku_monthly
WHERE TodayRainSoFar > 0.0
AND DATE_FORMAT(LogDateTime, "%m.") = 04

现在我正在寻找一些东西来计算行之间的最大持续时间(LogDateTime 是日期时间,范围是 1 分钟),类似于

AND MAX (COUNT BETWEEN rows) 

最佳答案

下面使用的方法是保存连续下雨分钟数的计数器,然后获取计数器具有最大值的行(这将为您提供连续下雨的最大持续时间)。如果雨结束,计数器将重置为 0。

SELECT DATE_SUB(LogDateTime, INTERVAL counter MINUTE) AS StartTime, LogDateTime AS EndTime FROM (
SELECT IF(TodayRainSoFar = 0, @i:=0, @i:=@i+1) AS `counter`,
LogDateTime, TodayRainSoFar
FROM
sibeniku_monthly, (SELECT @i:= 0) i
ORDER BY LogDateTime
) t
ORDER BY `counter` DESC
LIMIT 0,1

工作演示:http://sqlfiddle.com/#!2/8578b8/8

关于mysql - 选择中间有数据的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22932793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com