2013-02-26 83 views
0

我正在生成日历表,如何生成重复序列如下。谢谢。 ID_1的在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 

序列将是1,1,1,2,2,2,3,3,3,...直至6,6,6,然后重新启动在1,1,1, ...

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

回答

0

那么,你可以用基本的算术做到这一点。答案是将日期和小时转换为自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 2013-02-26 04:45:24

+0

有未知列“DT”现在,所有的ID_1和ide_2是空的,我要开始从第一行填写,谢谢! – user2109581 2013-02-26 04:46:36