问题描述
以下是场景:
create table test (test_date date);
insert into test values (str_to_date('16/04/1991','%d/%m/%y'))
MysqL 不允许我插入此记录并显示错误“截断的错误值”
我尝试使用 IGnorE
:
insert ignore into test values (str_to_date('16/04/1991','%d/%m/%y'))
但它捕获的年份为 2019 年。
请帮忙。
谢谢!
解决方法
insert into test values (str_to_date('16/04/1991','%d/%m/%Y'))
年份应该是 %Y
请参考此page
,这实际上是一个警告,而不是一个错误,这是因为 MySQL 在严格模式下运行。在严格模式下,尝试插入/更新时警告会变成错误。要禁用严格模式,您可以将 SET sql_mode = '';
放在查询的开头。