将 timediff() 中的值转换为 mysql 的字符串

Convert value in timediff() into string for mysql

我想查询时间间隔的小时数。比如我从查询中得到结果1:50.

select TIMEDIFF(time_start,time_end) hours from booking_submit

如何将 timediff() 中的值转换为类似“1 小时 50 分钟”的值?

您可以使用日期函数:

select time_format(timediff(time_start,time_end), '%H hours %i minutes') as hours
from booking_submit

这可能会解决您的问题

SELECT CONCAT(
MOD(HOUR(TIMEDIFF(time_start, time_end)), 24), ' Hours ',
MINUTE(TIMEDIFF(time_start, time_end)), ' Minutes '
) time_spent
FROM booking_submit;

只要 time_start 在 time_end 的 24 小时内。否则,无论日期如何,都会为您提供从开始时间到结束时间的时间。 如果你想添加花费的天数,你可以在 CONCAT 函数中添加如下内容:

CONCAT(FLOOR(HOUR(TIMEDIFF(time_start, time_end)) / 24), ' Days ',

希望对你有用。