我正在使用一些将时间表示为十进制表示时间的旧表,如下所示:
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
建议更好的方法?