Генериране на повтаряща се последователност в календарната таблица в 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, ... до 9, 9, 9, 9, 9, след което ще започне отново от 1, 1, 1, 1, 1....


person user2109581    schedule 26.02.2013    source източник


Отговори (1)


Е, можете да направите това с елементарна аритметика. Отговорът е да преобразувате датата и часа в брой часове от полунощ, 1/1/2013, и след това да ги преобразувате в серии, като използвате целочислено деление и модулен оператор. Резултатът е нещо като:

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
person Gordon Linoff    schedule 26.02.2013
comment
в момента всички id_1 и ide_2 са null, искам да започна да попълвам от първия ред, благодаря! - person user2109581; 26.02.2013