基于日期和时间的mysql随机数记录

kokeuurv  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(267)

我试图选择一个随机记录的日期和时间为基础的类。如果一个班级当天有超过一个时间段,我想选择这个时间段,然后转到第二天,并在以后的每一天都这样做。计划最多一周。我知道如何在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
 ;

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题