我需要一个Hql查询,它将输出时间分组为30分钟。我做了很多研究我只在Sql中发现了查询,我尝试了以下几个:
SELECT date_format(`date`, "YYYY-MM-dd hh:00:00.000 aa"),dateadd(minute,(datediff(minute,0,a.dt)/30)*30,0) FROM flux GROUP BY dateadd(minute,(datediff(minute,0,a.dt)/30)*30,0)
它给了我以下错误:
Invalid function dateadd
我也试过这个:
SELECT date_format(`date`, "YYYY-MM-dd hh:00:00.000 aa") FROM flux GROUP BY second(`date`)%('30*60')
但它给了我以下错误:
Error encountered near token ''30*60''
如果您对如何解决我的问题有任何想法请帮助。
谢谢!
答案 0 :(得分:0)
将其转换为秒并将其除以30 * 60并使用group by。
select from_unixtime(round(unix_timestamp(ts)/1800)*1800),count(*) as count_30,
from flux
group by round(unix_timestamp(ts)/1800)