如何将两个varchar列转换为时间并减去小时数

时间:2017-06-20 00:56:31

标签: mysql sql

我正在努力解决这个问题,我非常感谢任何帮助或指导。

我有一个带有事件表的Mysql数据库,其中我有两列,数据类型为varchar,名称为time_start和time_end

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

例如,目的图像select * from events的结果是:

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

如何将这些字符串转换为时间并减去(time_end - time_start)导致1h

请求任何帮助

1 个答案:

答案 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会将值转换为数字。