- ベストアンサー
MySQLで時間データ加工の方法とは?
- MySQLで時間データを加工する方法について教えてください。特に連続する時間データに変換する方法が知りたいです。
- MySQLのテーブルに保存された時間データを連続するデータに変換する方法を教えてください。
- MySQLで時間データを変換する方法を知りたいです。特に連続するデータに変換する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
行を増やす必要があるので、連続数のテーブルを作っておくか、サブクエリ内にunion で作るかして、連続数のテーブルとjoin すればいける。 interval の最大値が3-4程度なら、連続数テーブルをunionで作って以下のように,元のテーブル名 tbl としている select date_add( tbl.dates , interval nn.n minute) as dates , tbl.id from tbl left join ( select 0 as n union select 1 union select 2 union select 3 union select 4 ) as nn on tbl.interval >= nn.n ; interval の最大値が、10以上なら、0 から 9 の連続数テーブルを作っておくのがよい create table num( n int ); insert into num values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); 10 以上は、自己結合で生成 select n1*10+n2 as n from num n1 cross join num n2 ; 100 以上は、3つ自己結合 で、元のテーブルにこのサブクエリテーブルをjoin。以下のように select date_add( tbl.dates , interval nn.n minute) as dates , tbl.id from tbl left join (select n1*10+n2 as n from num n1 cross join num n2 ) as nn on tbl.interval >= nn.n order by tbl.id , dates ;