我试图选择一个随机记录的日期和时间为基础的类。如果一个班级当天有超过一个时间段,我想选择这个时间段,然后转到第二天,并在以后的每一天都这样做。计划最多一周。我知道如何在mysql中使用rand()获取随机记录,但是如何使用相同的代码每天进行检查?我环顾四周,发现问题很接近,但没有日期和时间。
数据示例:
Classroom Start_Date Start_Time
1 6/6/18 1700
1 6/6/18 1800
2 6/7/18 1200
2 6/7/18 1300
2 6/7/18 1400
我每天每个教室只有一张唱片。我有这个到目前为止,我很肯定我需要创建一个前一个和下一个记录。但我不知道如何让它发挥作用。我目前掌握的代码如下。事先谢谢你的帮助。
mysql代码:
SELECT CLASSROOM, n,start_date, start_hour
FROM
(SELECT @prev:='', @n := 0) init
JOIN
(select @n := if(2a.CLASSROOM != @prev, 1, @n + 1) AS n,
@prev := 2a.CLASSROOM
, date_format(2a.START_DT_TIME, '%m/%d/%Y') as start_date
, 2a.CLASSROOM + CASE WHEN 1a.TIME_ZONE_KEY = 'America/Chicago' THEN Hour(CONVERT_TZ(2a.START_DT_TIME,'GMT','America/Chicago'))
WHEN 1a.TIME_ZONE_KEY= 'America/Denver' THEN Hour(CONVERT_TZ(2a.START_DT_TIME,'GMT','America/Denver'))
WHEN 1a.TIME_ZONE_KEY= 'America/Los_Angeles'THEN hour(CONVERT_TZ(2a.START_DT_TIME,'GMT','America/Los_Angeles'))
WHEN 1a.TIME_ZONE_KEY = 'America/New_York'THEN hour(CONVERT_TZ(2a.START_DT_TIME,'GMT','America/New_York'))
WHEN 1a.TIME_ZONE_KEY = 'America/Phoenix'THEN hour(CONVERT_TZ(2a.START_DT_TIME,'GMT','America/Phoenix'))
ELSE Null
END AS start_hour
from XX_WELCOME_SESSION_0 1a
JOIN XX_WELCOME_SESSION_0_CLASS 2a
ON 1a.ACCOUNT_ID=2a.ACCOUNT_ID
where 2a.START_DT_TIME > NOW()
ORDER BY 2a.CLASSROOM
) x
WHERE n <=1
ORDER BY CLASSROOM, n
;
暂无答案!
目前还没有任何答案,快来回答吧!