我尝试以下转换表:
ALTER TABLE test MODIFY COLUMN a timestamp NULL DEFAULT '1970-01-01 00:00:01';
表结构是:
CREATE TABLE `test` (
`a` timestamp NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我的sql_mode是:
STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,
NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION
我得到的错误是:#1067 - Unknown error 1067
令我困惑的其他事情,为什么它没有显示实际错误?
答案 0 :(得分:0)
看来,您的服务器已禁用ALLOW_INVALID_DATES
。
服务器要求月和日值合法,而不仅仅是 分别在1到12和1到31的范围内。有严格的模式 已禁用,无效日期,例如' 2004-04-31'转换为 ' 0000-00-00'并生成警告。 启用严格模式后, 无效日期会生成错误。要允许此类日期,请启用
ALLOW_INVALID_DATES