使用 str_to_date() 插入文本作为日期时出现“截断不正确的值”错误

问题描述

我正在为 MysqL 中的插入场景之一寻找查询解析。

以下是场景:

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 = ''; 放在查询的开头。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...