我看到很多直接用19:00做条件,因为我害怕开始时间会变,所以就截取了课程时间除后六位之外的前几位与进出时间进行对比,这样泛化性会好一些
select course_tb.course_id,
course_name,
count(distinct user_id) as online_num
from
attend_tb join course_tb on attend_tb.course_id = course_tb.course_id
where in_datetime <= date_format(left(course_datetime,length(course_datetime) - 6),'%Y-%m-%d %T')
and out_datetime > date_format(left(course_datetime,length(course_datetime) - 6),'%Y-%m-%d %T')
group by course_tb.course_id,course_name
order by course_tb.course_id;