针对这道题不同想法(此代码不是正确答案)

因为直播间 直播时间为 19:00—21:00

而我们要统计观看直播的平均时长 个人认为应该统计在19:00—21:00 之间的观看时长

所以 我进行了

进入时间的判断 19点之前进入的 进入时间改为19点整 19点后进入的 还是原时间

退出时间的判断 21点之后退出的 进入时间改为21点整 21点之前进入的 还是原时间

同时where 退出时间要大于19点 进入时间要小于21点

部分代码如下

select course_id,user_id,
    if(time(in_datetime)<'19:00:00',concat(date(in_datetime),' 19:00:00'),in_datetime) as jin,
    if(time(out_datetime)>'21:00:00',concat(date(in_datetime),' 21:00:00'),out_datetime) as chu
from attend_tb
where time(out_datetime) >='19:00:00' and time(in_datetime) <='21:00:00'