mysql:减去日期值时奇怪的结果,现在()
-
30-09-2019 - |
题
我只是试图用当前的日期时间插入两个行,然后计算自该日期以来经过的时间。这是两个插入后我表的行,并使用now()函数设置时间戳:
mysql> select * from pendingActivations;
+--------+------------+---------------------+
| userId | code | timestamp |
+--------+------------+---------------------+
| 2 | aaa | 2010-08-23 17:04:02 |
| 2345 | alkfjkla23 | 2010-08-23 16:59:53 |
+--------+------------+---------------------+
使用UserID等于2的行插入几分钟后,我执行了以下命令,希望我能给我每行的时间戳。这是结果:
mysql> select userId, code, timestamp, NOW() - timestamp as elapsedSeconds from pendingActivations;
+--------+------------+---------------------+----------------+
| userId | code | timestamp | elapsedSeconds |
+--------+------------+---------------------+----------------+
| 2 | aaa | 2010-08-23 17:04:02 | 136.000000 |
| 2345 | alkfjkla23 | 2010-08-23 16:59:53 | 4585.000000 |
+--------+------------+---------------------+----------------+
我想知道第二行是如何具有巨大的超秒价值,这表明恰好1小时16分25秒已经过去了,尽管很容易看到此后仅5分钟就过去了。
这是表结构:
mysql> describe pendingActivations;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| userId | int(11) | NO | PRI | NULL | |
| code | varchar(32) | NO | UNI | NULL | |
| timestamp | datetime | NO | | NULL | |
+-----------+-------------+------+-----+---------+-------+
有什么想法和/或解释吗?
解决方案
我无法解释这个问题,但我怀疑 -
操作以意想不到的格式返回结果(可能包括微秒或十分之一?)
我会用 TIMEDIFF()
.
返回
expr1
–expr2
表示为时间值。 expr1和expr2是时间或时间表达式,但两者都必须是相同的类型。
不隶属于 StackOverflow