我正在努力解决这个问题,我非常感谢任何帮助或指导。
我有一个带有事件表的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
请求任何帮助
答案 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会将值转换为数字。