MySql在Seconds中的两个时间戳之间的差异?

时间:2010-11-29 02:18:24

标签: sql mysql timestamp

是否可以计算Mysql中两个时间戳之间的差异并在几秒钟内获得输出结果?喜欢2010-11-29 13:16:55 - 2010-11-29 13:13:55应该给180秒。

谢谢

3 个答案:

答案 0 :(得分:143)

我不认为接受的答案是一个很好的通用解决方案!

这是因为UNIX_TIMESTAMP()函数在1970-01-01之前的DATE失败(对于远期使用32位整数的日期)。这可能很容易发生在许多活着的人的出生那天。

更好的解决方案是:

SELECT TIMESTAMPDIFF(SECOND, '2010-11-29 13:13:55', '2010-11-29 13:16:55')

可以修改哪一天返回DAY YEAR HOUR和MINUTE!

答案 1 :(得分:30)

使用UNIX_TIMESTAMP function将DATETIME转换为以秒为单位的值,从1970年1月1日开始:

SELECT UNIX_TIMESTAMP('2010-11-29 13:16:55') - UNIX_TIMESTAMP('2010-11-29 13:13:55') as output

结果:

output
-------
180

如果您不确定哪个值大于另一个值,则可以轻松处理 - 使用ABS function

SELECT ABS(UNIX_TIMESTAMP(t.datetime_col1) - UNIX_TIMESTAMP(t.datetime_col2)) as output

答案 2 :(得分:1)

TIMESTAMPDIFF方法仅适用于日期时间格式。如果您想要两次之间的差异,如'11:10:00'减去'10:20:00'那么请使用

select TIME_TO_SEC('11:10:00')-TIME_TO_SEC('10:20:00')
相关问题