1

我在日志中插入了一系列记录。每个系列都由一个 id 标识。所以

SELECT * FROM log WHERE action_id = x ORDER by created;

但我想插入第一条记录,最后一条。这些记录有一个创建的时间戳。所以我想找出第一条和最后一条记录之间的差异,以秒为单位。

更新:

我试过了

SELECT max(created) - min(created) FROM log WHERE action_id = 21 ORDER BY created;

它返回 0.000000

这两者的时间差显然是几分钟。

max(created)    min(created)
"2013-02-11 14:30:34"   "2013-02-11 14:27:31"

它存储为日期时间。引擎是 InnoDB。

4

1 回答 1

1

我猜想这created是作为字符串存储的。

尝试这个:

select max(cast(created as datetime)) - min(cast(created as datetime))

如果您尝试以下操作:

select '2012-01-01 10:44' - '2012-01-01 10:41'

您将得到一个值 0。MySQL 将字符串转换为数字,在 2012 年停止,然后取差值。

于 2013-02-11T14:45:03.163 回答