Mysql 时间戳差异的返回值

Mysql 时间戳差异的返回值,mysql,sql,datetime,Mysql,Sql,Datetime,我不明白时间戳返回答案的不同单位是什么 当我从列中选择max(timestamp)和min(timestamp)时,下面是我得到的值 max(timestamp) 2017-08-31 05:43:45 min(timestamp) 2017-08-31 05:36:13 然而下面的查询返回732 select max(timestamp) - min(timestamp) from <TABLE NAME> 从中选择最大(时间戳)-最

我不明白时间戳返回答案的不同单位是什么

当我从列中选择max(timestamp)和min(timestamp)时,下面是我得到的值

max(timestamp)                    
2017-08-31 05:43:45 

min(timestamp)
2017-08-31 05:36:13
然而下面的查询返回732

select max(timestamp) - min(timestamp) from <TABLE NAME>
从中选择最大(时间戳)-最小(时间戳)

但是,如果将时间戳放在time_to_sec()内,它会以秒为单位给出当前答案,即452。那么我在这里缺少什么呢?

当您对时间戳进行算术运算时,它首先将它们转换为数字形式
yyymmddhhmmss
。这就是
20170831054345-20170831053613
,也就是
732

如果要将结果作为时间,请使用函数

select TIMEDIFF(max(timestamp), min(timestamp)) from <TABLE NAME>
从中选择TIMEDIFF(最大(时间戳),最小(时间戳))

这是一个有趣的现象,我很好奇是否有人能提出这样的原因

通常,要计算时间戳差异,请使用:

TIMESTAMPDIFF(SECOND, min(timestamp), max(timestamp))