【问题标题】:Generate repeat sequence in calendar table in mysql在mysql的日历表中生成重复序列
【发布时间】:2013-02-26 03:05:36
【问题描述】:

我正在生成一个日历表,如何生成重复序列如下。谢谢。

dt                   |id_1|id_2  
2013-01-01 00:00:00       |1|              3            
2013-01-01 01:00:00       |1|              3         
2013-01-01 02:00:00       |1|              3    
2013-01-01 03:00:00       |2|              3       
2013-01-01 04:00:00       |2|              3          
2013-01-01 05:00:00       |2|              4         
2013-01-01 06:00:00       |3|              4

id_1 的序列将是 1, 1, 1, 2, 2, 2, 3, 3, 3,.. 直到 6,6,6,然后在 1,1,1,.. 重新开始p>

id_2 的序列将从 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, ... 直到 9, 9, 9, 9, 9,然后从 1, 1 重新开始, 1, 1, 1....

【问题讨论】:

    标签: mysql sequence repeat


    【解决方案1】:

    嗯,你可以用基本的算术来做到这一点。答案是将日期和小时转换为自 2013 年 1 月 1 日午夜以来的小时数,然后使用整数除法和模运算符将它们转换为系列。结果是这样的:

    select (((date(dt) - date('2013-01-01))*24 + hour(dt)) div 3) mod 5) + 1 as id_1,
           (2+(((date(dt) - date('2013-01-01))*24 + hour(dt)) div 5) mod 9) + 1 as id_2
    

    【讨论】:

    • 现在id_1和ide_2都是null,我想从第一行开始填,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2020-03-28
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多