需要帮助来订购我的 MySQL table 中的时间和日期列

Need help to order the time and date column in my MySQL table

我想在制定查询方面寻求一些帮助,以便我可以实现下面所述的预期输出。我尝试了很多次来实现预期的输出,但我总是得到下面描述的实际输出。我使用 MySQL 作为我的 RDBMS。顺便说一句,如果仅使用查询无法做到这一点,请告诉我,以便我通知我的团队。谢谢

排序规则:

排序规则就是按顺序显示每个日期的每组时间段。例如9月23-26日【显示第一组时间段】->下一次显示:9月23-26日【显示第二组时间段,如有】->以此类推。

预期输出:

|      Date         | Start_Time | End_Time
|September 23, 2020 | 8:00 AM    | 9:00 AM
|September 24, 2020 | 9:00 AM    | 10:00 AM 
|September 25, 2020 | 8:00 AM    | 9:00 AM 
|September 26, 2020 | 9:00 AM    | 10:30 AM 
|September 23, 2020 | 9:00 AM    | 10:00 AM 

实际输出:

https://i.stack.imgur.com/g9kWV.png

当前代码:

Select DISTINCT timeslot.Timeslot_ID,
timeslot.Date,timeslot.Start_Time,timeslot.End_Time from timeslot
WHERE timeslot.ExamEvent_ID=1 ORDER BY STR_TO_DATE
(CONCAT(timeslot.Start_Time,' - ',timeslot.End_Time), '%l:%i %p - %l:%i %p'), 
STR_TO_DATE (timeslot.Date, '%M %e, %Y')

使用ROW_NUMBER()window函数:

SELECT Timeslot_ID, ExamEvent_ID, Date, Start_Time, End_Time
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY Date ORDER BY STR_TO_DATE(Start_Time, '%l:%i %p')) rn
  FROM timeslot
) t  
ORDER BY rn, STR_TO_DATE(Date, '%M %e, %Y')

参见demo