2013-02-26 27 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