在查看MySQL文档时,我没有在DATE_FORMAT(由TIME_FORMAT引用)下找到将MySQL TIME值(例如:172:04:11)转换为“7天,4小时”的选项。
有没有办法(在MySQL中)以这种方式格式化时间?或者我应该只在PHP中返回TIME值?
答案 0 :(得分:1)
我讨厌回答我自己的问题,但要清除MySQL的TIME()函数会截断超过838:59:59的值 - 显然不可取。
我找到的解决方案是使用它:
TIMESTAMPDIFF(SECOND,date_old,date_newer)
哪个没有相同的截断问题。一旦你有秒,使用一些服务器端脚本来格式化我在原始请求中的时间。如果您想在PHP中查看示例,或者编写自己的示例,请回复。 :)
希望这有用吗?
答案 1 :(得分:0)
TIME
类型的变量很可能用于表示时间间隔,您可以使用addtime()
函数将此间隔添加到给定的DATETIME
类型变量。
SELECT ADDTIME( NOW(), '172:04:11' );
按预期工作,但是如果您需要将此时间间隔显示为天和小时,只需使用:
SELECT CONCAT(
FLOOR(HOUR('172:04:11')/24),
' days, ',
HOUR('172:04:11') MOD 24,
' hours.');
答案 2 :(得分:0)
SELECT CONCAT( FLOOR(TIME_FORMAT('172:04:11', '%H')/24), ' days ', (TIME_FORMAT('172:04:11', '%H') MOD 24), ' hours ', TIME_FORMAT('172:04:11', '%i'), ' minutes ', TIME_FORMAT('172:04:11', '%s'), ' seconds')