mysql函数时分秒转换_mysql函数 秒转换成时分秒
方法一:
CREATE DEFINER=`root`@`%` FUNCTION `timeDifference`(Dirty VARCHAR ( 500 )) RETURNS text CHARSET utf8
DETERMINISTIC
BEGIN
IF Dirty<0 THEN
SET Dirty= TRIM(LEADING '-' FROM Dirty);
SET Dirty = CONCAT('-',
cast( FLOOR(Dirty / 86400)*24+(Dirty % 86400 / 3600) ?AS signed INTEGER ),
'時(shí)',
cast( Dirty % 86400 % 3600 / 60 AS signed INTEGER ),
'分',
cast( Dirty % 86400 % 3600 % 60 AS signed INTEGER ),
'秒'
);
ELSE
SET Dirty = CONCAT(
cast( FLOOR(Dirty / 86400)*24+(Dirty % 86400 / 3600) ?AS signed INTEGER ),
'時(shí)',
cast( Dirty % 86400 % 3600 / 60 AS signed INTEGER ),
'分',
cast( Dirty % 86400 % 3600 % 60 AS signed INTEGER ),
'秒'
);
END IF;
RETURN Dirty;
END
注:這種計(jì)算有問(wèn)題9728秒時(shí),轉(zhuǎn)換成時(shí)分秒有一小時(shí)誤差。別的沒(méi)發(fā)現(xiàn)問(wèn)題!應(yīng)該是小數(shù)點(diǎn)后面死循環(huán)的原因,有大神發(fā)現(xiàn)其他原因請(qǐng)留言。
方法二:
CREATE DEFINER=`root`@`localhost` FUNCTION `timeDifference`(Dirty VARCHAR ( 500 )) RETURNS text CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE a integer(10);
DECLARE b integer(10);
DECLARE c integer(10);
DECLARE d integer(10);
DECLARE e integer(10);
DECLARE f integer(10);
DECLARE timeDif VARCHAR ( 500 );
set a=0;
set d=0;
set f=0;
IF Dirty<0 THEN
SET timeDif= TRIM(LEADING '-' FROM Dirty);
ELSE
SET timeDif=Dirty;
END IF;
set a =cast( timeDif ?% 60 AS signed INTEGER ) ;#秒
set b =timeDif-a;#時(shí)間差
IF b > 0 THEN
set c=cast( b / 60 AS signed INTEGER );
set d=cast( c % 60 AS signed INTEGER );#分
set e=c-d;
END IF;
IF e > 0 THEN
set f = cast( e / 60 AS signed INTEGER );#時(shí)
END IF;
IF Dirty < 0 THEN
set Dirty=CONCAT('-',f,'時(shí)',d,'分',a,'秒');
ELSE
set Dirty=CONCAT(f,'時(shí)',d,'分',a,'秒');
END IF;
RETURN Dirty;
END
這種計(jì)算目前沒(méi)發(fā)現(xiàn)問(wèn)題。有更好的請(qǐng)留言。
總結(jié)
以上是生活随笔為你收集整理的mysql函数时分秒转换_mysql函数 秒转换成时分秒的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: spring下连接mysql_使用Spr
- 下一篇: java mysql 触发器 存储过程_