我想从前一个小时的最后一个记录中提取la值。
该表具有:DateHour(TIMESTAMP)和Energy(FLOAT)
Id________DateHour_____________Energy
..........................................................................
18350____2019-10-05 18:57:44____231.38
18351____2019-10-05 18:59:45____231.33
..........................................................................
..........................................................................
18400____2019-10-05 19:51:00_____123.35
现在是19:51:15。
我想在上面的示例中选择ID为18351的值。即使一天变化,我也想工作。
绑:
select *
from table1
where DateHour> (unix_timestamp()*1000 - 60*60*1000);
不好。
最佳答案
假设您使用的是MySQL(代码如下所示):
select t1.*
from table1 t1
where datehour >= cast(date_format(now() - interval 1 hour, '%Y-%m-%d %h:00') as datetime) and
datehour < cast(date_format(now(), '%Y-%m-%d %H:00') as datetime)
order by datehour desc
limit 1;
MySQL没有便利的功能(如Postgres中的
date_trunc()
)将日期/时间值四舍五入为特定单位。在这种情况下,它为此使用字符串转换。注意,查询的结构使得可以在
datehour
上使用索引。如果索引可用并且表很大,那很重要。