将timediff()中的值转换为mysql的字符串
我有一个查询要在两次之间获取小时。例如,我从查询中得到的结果是1:50将timediff()中的值转换为mysql的字符串,mysql,sql,string,datetime,time,Mysql,Sql,String,Datetime,Time,我有一个查询要在两次之间获取小时。例如,我从查询中得到的结果是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 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 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;
只要开始时间在结束时间的24小时内。否则,将为您提供从开始时间到结束时间的时间,而不考虑日期。
如果要添加所花费的天数,可以向CONCAT函数添加如下内容:
CONCAT(FLOOR(HOUR(TIMEDIFF(time_start, time_end)) / 24), ' Days ',
希望对你有用。这可能会解决你的问题
SELECT CONCAT(
MOD(HOUR(TIMEDIFF(time_start, time_end)), 24), ' Hours ',
MINUTE(TIMEDIFF(time_start, time_end)), ' Minutes '
) time_spent
FROM booking_submit;
只要开始时间在结束时间的24小时内。否则,将为您提供从开始时间到结束时间的时间,而不考虑日期。
如果要添加所花费的天数,可以向CONCAT函数添加如下内容:
CONCAT(FLOOR(HOUR(TIMEDIFF(time_start, time_end)) / 24), ' Days ',
希望它对你有用。
DATE\u FORMAT
会有帮助的DATE\u FORMAT
会有帮助,但为什么其中一些是负值。@阿米鲁法米:实际上time\u diff()
的参数应该是另一种方式:timediff(time\u endtime\u start)
(复制/粘贴这部分查询时,我没有注意到列名)。一开始我也没有注意到。但这确实有效且简单。谢谢!这很有效,但为什么其中一些是负值。@Amirufahmi:time\u diff()
的参数应该是另一种方式:timediff(time\u endtime\u start)
(复制/粘贴您查询的这一部分时,我没有注意到列名)。一开始我也没有注意到。但这确实有效且简单。谢谢!