MySQL:尝试在时间戳中插入值会引发错误

Max*_*val 6 mysql timestamp

我有一个关于这一列的表:

last_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

看起来我无法插入带有自定义时间戳的行,我收到此错误:

日期时间值不正确:第11行第'last_modified'列的'1145868501'

我试图用来自另一个表的数据填充此表,其他表只有一个创建时间字段,这是一个DATETIME所以我使用UNIX_TIMESTAMP(creation_time)来填充时间戳.

我认为带有"DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"的timestamp列阻止我插入自己的东西,对吗?如果是,官方文件在哪里,以及最佳解决方案是什么?首先创建一个简单的时间戳,然后在插入数据后更改表格?

谢谢!

编辑:因为人们建议我不要使用UNIX_TIMESTAMP,我不得不说我不想在开头使用它,但是我遇到了这样的错误:日期时间值不正确:'2010-03-28 02:15 :51'列'last_modified'所以我认为我必须插入一个"真正的"时间戳...

ype*_*eᵀᴹ 7

您可以显式地在TIMESTAMP列中插入一个值。阅读:时间戳属性

自动更新 TIMESTAMP 列(如果有)会在行中任何其他列的值从其当前值更改时自动更新为当前时间戳。如果所有其他列都设置为其当前值,则 TIMESTAMP 列不会更改。如果 TIMESTAMP 列显式分配了非 NULL 值,则自动更新不适用。


更新

呵呵,发生错误是因为 - 好吧 - 没有日期时间'2010-03-28 02:15:51'!这是夏令时间隔(通常出现在三月的某一天,介于02:00 - 03:0003:00 - 04:00.

请参阅:夏令时说明。