SQL实现当前日期每半个小时实时数据统计

SQL计算当前日期的前一天,按每半个小时作为时间区间统计数据库的数据到时间点上。
我这里的create_time为visit表中数据插入数据库的时间,curdate()函数返回当前的日期(例如:2020-06-08)

select a.h as `hour`,if(a.v=0,":00",":30") `minute`,a.total as `total`
from
	(SELECT  HOUR(create_time) AS h, FLOOR(MINUTE(create_time) / 30) AS v,count(*) total
 	from visit
 	where DATE_FORMAT(create_time,'%Y-%m-%d') = date_add(date_format(curdate(),'%Y-%m-%d'), interval -1 day)
 	and x_id = #{XId}
GROUP BY h, v) a
//如果计算当前的日期把上面的
date_add(date_format(curdate(),'%Y-%m-%d'), interval -1 day)
替换为
DATE_FORMAT(curdate(),'%Y-%m-%d')
即可

你可能感兴趣的:(SQL实现当前日期每半个小时实时数据统计)