减去时间戳

Dre*_*rew 7 mysql sql timestamp

我认为这将是一件非常简单的事情,但我很难找到任何答案!

我有一个支持表,有added_onclosed_on字段可以跟踪何时打开和关闭支持票据.

我想运行一个查询(closed_on - added_on)来显示故障单打开的持续时间.这两个字段都是timestamp格式.这并不像我想象的那么简单......

理想情况下,最终输出会是,X days Y hours Z minutes但我很高兴只是得到总秒或什么,我当然可以从那里拿走它.

样本数据:

[id]  [added_on]             [closed_on]
 1    2010-01-01 00:10:20    2010-01-02 00:10:20   
 1    2010-01-03 00:00:01    2010-01-03 13:30:01   
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 2

使用:

SELECT CONCAT(DATEDIFF(closed_on, added_on), 
              ' days ', 
              SUBSTRING_INDEX(TIMEDIFF(closed_on, added_on), ':', 1), 
              ' hours ', 
              SUBSTR(TIMEDIFF(closed_on, added_on), INSTR(TIMEDIFF(closed_on, added_on), ':')+1, 2),  
              ' minutes')
Run Code Online (Sandbox Code Playgroud)

根据您的示例数据,这给了我:

0 days 00 hours 00 minutes
0 days 13 hours 30 minutes
Run Code Online (Sandbox Code Playgroud)