mysql1411_MySQL错误代码:1411.日期时间值不正确:”...

SQLException不是直接来自MySQL,它可能是由您的客户端语言触发的. MySQL只会生成一个通常可以忽略的警告.无论如何,ALLOW_INVALID_DATES SQL模式实际应该可以解决这个问题:

警告:

mysql> SET @@SESSION.sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';

Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;

+---------+------+-------------------------------------------------------+

| Level | Code | Message |

+---------+------+-------------------------------------------------------+

| Warning | 1411 | Incorrect datetime value: '' for function str_to_date |

+---------+------+-------------------------------------------------------+

1 row in set (0.00 sec)

没有警告:

mysql> SET @@SESSION.sql_mode='ALLOW_INVALID_DATES';

Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));

Query OK, 1 row affected (0.03 sec)

编辑:如果您正在寻找重写查询的方法,您可以尝试这样的事情:

update atable

set adate=NULL

where anum='1'

当然,这要求adate可以为空.


版权声明:本文为weixin_42532938原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。