对于下表,我想获得每个站点的col-D和col-E的最后一小时和当前小时之间的差异。 作为其中的一部分,我试图首先获取每个站点的最新(当前)小时条目,但以下查询仅列出了endTime为01:00:00的条目,当我有条目达到9.00AM < / p>
select distinct(mmeName), endDate, endTime, c_ratio, set_time from attach where
type='INIT' and Date(endDate)=curDate() and
Time(endTime) >= DATE_ADD(Time(endTime), INTERVAL -1 HOUR) group by mmeName;
任何帮助都会对即时问题表示赞赏,并且能够找到当前和最后一小时之间的差异。
答案 0 :(得分:1)
<强> EDITED 强>
我认为这就是你要找的东西。这将为您提供任何记录,其中endTime是每个mmeName的最新当前时间之前一小时。 'max'子选择获取每个mmeName的最新结束日期时间,并且加入返回恰好在此之前一小时与记录匹配。
SELECT mmeName, endDate, endTime, c_ratio, set_time
FROM attach a
JOIN
(SELECT mmeName, CONCAT(endDate, ' ' , endTime) max_endDateTime
FROM attach
WHERE type = 'INIT'
ORDER BY endDate DESC, endTime DESC
) AS max ON max.mmeName = a.mmeName
AND max.max_endDateTime = DATE_ADD(CONCAT(endDate, ' ' , endTime), INTERVAL 1 HOUR)
WHERE type = 'INIT'
;
ORIGINAL
select mmeName, endDate, endTime, c_ratio, set_time
from attach
where type='INIT' and Date(endDate)=curDate() and
endTime >= DATE_SUB(now(), INTERVAL -1 HOUR)
group by mmeName;
注意:如果给定的mmeName有多个匹配记录,则此查询将只抓取其中一个。
已编辑:您需要从WHERE子句中删除TIME()函数。两者都有日期和时间,如果你没有,如果你在凌晨12:00到凌晨1点之间运行,它将不会返回任何结果。