MySQL DATETIME到TIMESTAMP的转换

时间:2015-02-19 11:18:48

标签: mysql datetime

在将DATETIME列转换为TIMESTAMP时,我遇到了一些有趣的转换副作用。

转换前有DATETIME值:

+---------------------+
| creation_date       | 
+---------------------+
| 2015-02-18 19:57:52 | 
| 2015-02-18 19:57:18 | 
| 2015-02-18 19:51:52 | 
| 2015-02-18 19:51:29 | 
+---------------------+
  

ALTER TABLE t CHANGE creation_date creation_date TIMESTAMP null DEFAULT null;

转换为TIMESTAMP后的相同数据:

+---------------------+
| creation_date       | 
+---------------------+
| 2015-02-18 19:58:52 | 
| 2015-02-18 19:58:37 | 
| 2015-02-18 19:53:52 | 
| 2015-02-18 19:52:52 | 
+---------------------+

转换期间未发出任何警告。

我很好奇这种变化的原因是什么?请注意,每行的增量都不同。对于第一行,它是一分钟,第二行是79秒。

MySQL版本:5.1.73

1 个答案:

答案 0 :(得分:0)

我猜测在原始查询和您的后续查询之间添加了其他(稍后)事件记录,正如SurgeonofDeath暗示的那样。

也许您可以在查询中添加一些ID值...和/或检查原始查询中标识的相同时间是否仍然存在于数据库中?