
下面是一个 MySQL 函数,它计算两个日期之间的年、月、日、小时、分钟和秒的持续时间。
来画数字人直播
来画数字人自动化直播,无需请真人主播,即可实现24小时直播,无缝衔接各大直播平台。
0 查看详情
mysql> DROP FUNCTION IF EXISTS Duration;Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> DROP FUNCTION IF EXISTS Label123;Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> DELIMITER //mysql> CREATE FUNCTION Duration( dtd1 datetime, dtd2 datetime ) RETURNS CHAR(128) -> BEGIN -> DECLARE yyr,mon,mmth,dy,ddy,hhr,m1,ssc,t1 BIGINT; -> DECLARE dtmp DATETIME; -> DECLARE t0 TIMESTAMP; -> SET yyr = TIMESTAMPDIFF(YEAR,dtd1,dtd2); -> SET mon = TIMESTAMPDIFF(MONTH,dtd1,dtd2); -> SET mmth = mon MOD 12; -> SET dtmp = ADDDATE(dtd1, interval mon MONTH); -> SET dy = TIMESTAMPDIFF(DAY,dtd1,dtd2); -> SET ddy = TIMESTAMPDIFF(DAY,dtmp,dtd2); -> SET t0 = TIMESTAMPADD(DAY,dy,dtd1); -> SET t1 = TIME_TO_SEC(TIMEDIFF(dtd2,t0)); -> SET hhr = FLOOR(t1/3600); -> SET m1 = FLOOR(t1/60) - 60*hhr; -> SET ssc = t1 - 3600*hhr - 60*m1; -> RETURN CONCAT( Label123(yyr,'year'), Label123(mmth,'month'), -> label123(ddy,'day'), Label123(hhr,'hour'), -> Label123(m1,'min'), Label123(ssc,'sec') -> ); -> END; -> //Query OK, 0 rows affected (0.00 sec)mysql> CREATE FUNCTION Label123( ival int, clabel char(16) ) RETURNS VARCHAR(24) -> RETURN Concat( ival, ' ', clabel, If(ival=1,' ','s ') ); //Query OK, 0 rows affected (0.00 sec)mysql> DELIMITER ;mysql> Select Duration('2000-08-04 06:09:46', '2011-07-01 05:05:36')AS 'Duration';+-----------------------------------------------------+| Duration |+-----------------------------------------------------+| 10 years 10 months 26 days 22 hours 55 mins 50 secs |+-----------------------------------------------------+1 row in set (0.00 sec)
以上就是我们如何创建一个 MySQL 函数来找出年、月、日、小时、分钟和秒的持续时间?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/321741.html
微信扫一扫
支付宝扫一扫