【问题标题】:Convert value in timediff() into string for mysql [duplicate]将timediff()中的值转换为mysql的字符串[重复]
【发布时间】:2020-12-22 09:59:51
【问题描述】:

我有一个查询,以获取时间之间的小时数。例如,我从查询中得到 1:50 的结果。

select TIMEDIFF(time_start,time_end) hours from booking_submit

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

【问题讨论】:

  • DATE_FORMAT 将帮助check

标签: mysql sql string datetime date-arithmetic


【解决方案1】:

您可以使用日期函数:

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

【讨论】:

  • 这可行,但为什么其中一些是负值。
  • @AmirulFahmi:实际上time_diff() 的参数应该是相反的:timediff(time_endtime_start)(当我复制/粘贴这部分查询时,我没有注意列名)。
  • 一开始我也没有注意到。但这确实有效且简单。谢谢!
【解决方案2】:

这可能会解决您的问题

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 ',

希望它对你有用。

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 2013-11-04
    • 2014-09-08
    • 2017-12-15
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多