私は、時間を次のように表す小数として時間を表すいくつかのレガシーテーブルを使用しています。
74447.548 = 7:44:47.548
これを、時間が (int) ミリ秒として格納されるテーブルに移動しています。この変換用の関数を作成したい..次は機能しますが、より効率的な方法はありますか??
CREATE FUNCTION `test`.`decimalToMilli` (bigTime decimal)
RETURNS INTEGER
BEGIN
return (floor(mod(bigTime,floor(bigTime))*1000) -- milliseconds
+ (floor(bigTime) MOD 100) * 1000 -- seconds
+ ((((floor(bigTime) - floor(bigTime) MOD 100) MOD 10000))/100) * 1000*60 -- minutes
+ ((((floor(bigTime) - floor(bigTime) MOD 10000) MOD 1000000))/10000) * 1000*60*60 --hrs
);
END
より良い方法の提案はありますか?