MySQL TIMEstamp到几天,几小时

时间:2012-02-17 16:30:40

标签: php mysql time date-format

在查看MySQL文档时,我没有在DATE_FORMAT(由TIME_FORMAT引用)下找到将MySQL TIME值(例如:172:04:11)转换为“7天,4小时”的选项。

有没有办法(在MySQL中)以这种方式格式化时间?或者我应该只在PHP中返回TIME值?

3 个答案:

答案 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')