提问人:user2109581 提问时间:2/26/2013 最后编辑:Gordon Linoffuser2109581 更新时间:2/26/2013 访问量:267
在mysql的日历表中生成重复序列
Generate repeat sequence in calendar table in mysql
问:
我正在生成一个日历表,如何生成重复序列,如下所示。谢谢。
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 重新开始,..
id_2序列将从 3、3、3、3、3、4、4、4、4、4、4、...直到 9、9、9、9、9,然后在 1、1、1、1、1 重新开始......
答:
0赞
Gordon Linoff
2/26/2013
#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
评论
0赞
user2109581
2/26/2013
现在,所有id_1和ide_2都是空的,我想从第一行开始填充,谢谢!
评论