答案 0 :(得分:2)
可能启用严格模式和NO_ZERO_DATE。这对在零日期产生错误。
检查SQL_MODE并查看此页面 - NO_ZERO_DATE
答案 1 :(得分:1)
将默认TimeStamp放入:
CURRENT_TIMESTAMP
答案 2 :(得分:1)
date_crated
值的默认值不正确。
来自https://dev.mysql.com/doc/refman/5.7/en/datetime.html
TIMESTAMP值的范围是' 1970-01-01 00:00:01.000000'至 ' 2038-01-19 03:14:07.999999'
通常,您应将默认值设置为CURRENT_TIMESTAMP
此解决方案仅适用于2038年1月19日凌晨3:14:07。到了写这个答案的时候,大约21年过去了。因此,对于未来的程序员,如果MySQL没有更新/修复此限制,您将遇到问题并且必须找到解决方法。
答案 3 :(得分:1)
您的var fb = https://www.facebook.com/XYZ
fb = fb .substr(fb.indexOf("/") + 1); // Contains XYZ //
列的类型为date_created
,并且您将timestamp
作为默认值,这对于时间戳不正确,您可以为此列选择0000-00-00 00:00
。
答案 4 :(得分:0)
似乎没有解决此问题的方法。不管我做什么,如果我使用CURRENT_TIMESTAMP或'1970 ....',则是一个正常的有效日期,NULL,或者什么也没有, 即使我跑步:
SET SQL_MODE='ALLOW_INVALID_DATES';
(该命令实际上会成功执行)
..但它仍然是错误#1067。没有任何帮助。
我现在移到Ubuntu,在那里我对此没有任何问题。
答案 5 :(得分:0)
啊,我终于也用phpMyAdmin修复了它!
只需在phpMyAdmin的SQL面板中运行:
SHOW VARIABLES LIKE 'sql_mode';
就我而言,我在这里有NO_ZERO_DATE。
然后将其设置为与我在Ubuntu系统上使用的完全相同:
set global sql_mode='NO_ENGINE_SUBSTITUTION';
现在所有操作都可以使用“ 0000-00-00 00:00”作为默认值