1. 10分钟为粒度分组
SELECT
concat(left(date_format(create_time, '%Y-%m-%d %H:%i'),15),'0') AS groupTime,
count(*)
FROM
ai_t_task
WHERE
create_time BETWEEN '2023-01-14 00:00:00'
AND '2023-01-16 23:59:59'
GROUP BY
groupTime
(19条消息) 【数据库-MySql】按时间间隔分组查询 group by count(*) date_format_少莫千华的博客
#DATE_FORMAT(date,format)
#%Y #### 2017 年
#%y ## 17 年
#%M November 月
#%m ## 11 月
#%H 小时 12小时制
#%h 小时 24小时制
#%I 小时 12小时制
#%k 小时 24小时制
#%l 小时 12小时制
#%i 分钟
#%s %S 秒 保留两位
#%D 天 加th
#%d 天 保留两位,不足补零
#%e 天
#======周======
# %a %w %W
# Mon 1 Monday 周一
# Tue 2 Tuesday 周二
# Wed 3 Wednesday 周三
# Thu 4 Thursday 周四
# Fri 5 Friday 周五
# Sat 6 Saturday 周六
# Sun 0 Sunday 周七
#======月======
# %b %M
# Jan January 正月
# Feb February 二月
# Mar March 三月
# Apr April 四月
# May May 五月
# Jun June 六月
# Jul July 七月
# Aug August 八月
# Sep October 九月
# Nov November 冬月
# Dec December 腊月
#%c 月
#%f 毫秒 保留六位,不足补零
#%j 当年总天数
# eg.2017-12-31 365
# eg.2017-01-01 001
#%p AM\PM
#%r 时间 AM\PM 12小时制
# eg.01:59:33 PM
#%T 时间 24小时制
# eg.13:59:33
#%u %U 周数 从当年的第一个星期一开始计算 - 第二年清零
#%v 周数 从当年的第一个星期一开始计算 - 第二年不清零
#%v 周数 从当年的第一个星期天开始计算 - 第二年不清零
#%x %X %Y 年 保留四位,不足补零,两位补20 ,三位补0
#%y 年 保留年份后两位,不足补0
#显示世纪
SELECT CONCAT(left(YEAR(NOW()) + 100,2),'st');
SELECT MONTH(NOW());
SELECT day(NOW());
SELECT hour(NOW());
SELECT MINUTE(NOW());
SELECT SECOND(NOW());
#每十分钟
select concat(left(date_format(NOW(), '%Y-%m-%d %H:%i'),15),'0');
select concat(date(NOW()),' ',hour(NOW()),':',FLOOR(minute(NOW())/10)*10);
select concat(date(NOW()),' ',hour(NOW()),':',CEIL(minute(NOW())/10)*10);
select concat(date(NOW()),' ',hour(NOW()),':',ROUND(minute(NOW())/10)*10);
select round(UNIX_TIMESTAMP(NOW())/(10*60));
#每小时
date_format(create_time '%Y-%m-%d %H')
#当天
DATEDIFF(NOW(),create_time) = 0
#存储过程
DROP PROCEDURE IF EXISTS usp_cmd_info;
CREATE PROCEDURE usp_cmd_info(IN dates VARCHAR(12))
BEGIN
SELECT count(*) from prescription where create_time BETWEEN CONCAT(dates, " 00:00:00") AND CONCAT(dates, " 00:10:00") INTO @count_0;
SELECT count(*) from prescription where create_time BETWEEN CONCAT(dates, " 00:10:00") AND CONCAT(dates, " 00:20:00") INTO @count_1;
SELECT count(*) from prescription where create_time BETWEEN CONCAT(dates, " 23:40:00") AND CONCAT(dates, " 23:50:00") INTO @count_142;
SELECT count(*) from prescription where create_time BETWEEN CONCAT(dates, " 23:50:00") AND CONCAT(dates, " 23:59:59") INTO @count_143;
select @count_0 , @count_1, @count_142, @count_143;
END;
CALL usp_cmd_info("2017-11-21");
用一个例子来演示会更加清晰