1
我與一些舊錶工作,代表時間,這樣的十進制representating時間:MySQL的轉換傳統小數毫秒
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
建議更好的方法?
謝謝 - 但我剛剛在我的測試中發現,您的和我的例程都將毫秒數轉到最近的秒數?!? – JJeff
值2032.808作爲1233000而不是1232808插入到我的表中 - 我在觸發器中使用它作爲raw_time = decimalToMilli(NEW.CumulativeTime), – JJeff
啊 - 它是在bigTime的聲明中...它應該是(bigTime decimal(12,6)) – JJeff