在将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
答案 0 :(得分:0)
我猜测在原始查询和您的后续查询之间添加了其他(稍后)事件记录,正如SurgeonofDeath暗示的那样。
也许您可以在查询中添加一些ID值...和/或检查原始查询中标识的相同时间是否仍然存在于数据库中?