我尝试使用SEC_TO_TIME(seconds)
并且工作并给出结果如下
SEC_TO_TIME(161295.38237498334)
结果:
44:48:15.382375
我需要得到结果(DD:HH:MM)
答案 0 :(得分:2)
如果您使用的是@Mark Leiber提及的UNIX时间戳,请查看FROM_UNIXTIME()
和DATE_FORMAT()
。
如果您不使用时间戳,而是想格式化任意时间值,那么您可以查看TIME_FORMAT()
函数:
SELECT TIME_FORMAT(SEC_TO_TIME(161295.38237498334), '%H:%i:%s')
不幸的是TIME_FORMAT
只能代表小时和分钟部分。获得您可以使用的天数:
FLOOR(HOUR(SEC_TO_TIME(161295.38237498334)) / 24)
然后格式化剩余的小时和分钟:
TIME_FORMAT(SEC_TO_TIME(161295.38237498334 % (24 * 60 * 60)), '%H:%i'))
然后,您可以使用CONCAT()
完全放置它。有关完整的工作示例,请参阅this fiddle。
您可以在此处参考MySQL时间和日期函数的完整列表:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
另请参阅@RichardTheKiwi's answer至this相关问题。