select  a.course_id	,course_name,
# 取出分组后的 in_datetime的time 要早于它开始的时间
count(distinct user_id) as online_num  
# 下面的having 已经筛选除了 
# 上面的只需要计数  

from course_tb a, attend_tb b
where a.course_id = b.course_id  
and  '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i')

group by a.course_id,course_name
# 请你统计直播开始时(19:00),各科目的在线人数
# and  '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i')


order by a.course_id asc;


/*
使用date_format(date,format)提取日期的情况较多,较少使用提取时间,这里补充一下提取格式:
format 规定日期/时间的输出格式
%T 时间, 24-小时 (hh:mm:ss)
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%H 小时 (00-23)
%h 小时 (01-12)
%i 分钟,数值(00-59)
%S 秒(00-59)
%s 秒(00-59)
*/







/*
第一种:
1
2
date_format(a.in_datetime,'%H:%i:%s') <= '19:00:00'
date_format(a.out_datetime,'%H:%i:%s') >= '19:00:00'
第二种:
1
2
right(a.in_datetime,8) <= '19:00:00'
right(a.out_datetime,8) >= '19:00:00'
第三种:
1
2
time(a.in_datetime) <= '19:00:00'
time(a.out_datetime) >= '19:00:00'
*/