2017-06-20 40 views
0

我想解决这个问题,我非常感谢任何帮助或方向。如何将两个varchar列转换为时间和减去小时数

我有一个事件表MySQL数据库在那里我有两列数据类型为varchar和名称是TIME_START和TIME_END

的值存储为字符串24小时格式:16:00:00为例如

例如用图像的选择结果*从事件是:

time_start time_end 
13:00:00 14:00:00 

如何将这些字符串转换为时间。减去(TIME_END - TIME_START)导致1H

韩国社交协会的任何帮助

+0

你可以举一个更好的例子,其中的差异不是一个小时吗? –

回答

0

您可以通过使用time_to_sec()timestampdiff()轻松搞定的区别:

select time_to_sec(time(time_end)) - time_to_sec(time(time_start)) 

这使得在几秒钟的时间。如果你想整小时,除以3600:

select floor((time_to_sec(time(time_end)) - time_to_sec(time(time_start)))/(60 * 60)) as hours 

或者,如果你真的只是想减去小时的部分,你可以这样做:

select left(time_end, 2) - left(time_start, 2) 

MySQL将这些值转换为数字,因为的算术运算。