sql >> Database >  >> RDS >> Mysql

MySQL-foutcode:1411. Onjuiste datetime-waarde:'' voor functie str_to_date

De SQLException komt niet rechtstreeks van MySQL, het wordt waarschijnlijk geactiveerd door uw klanttaal. MySQL genereert alleen een waarschuwing die u normaal gesproken kunt negeren. Hoe dan ook, de ALLOW_INVALID_DATES SQL-modus zou moeten doe het echt:

Waarschuwing:

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)

Geen waarschuwing:

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)

Bewerken: Als u op zoek bent naar een manier om de query te herschrijven, kunt u zoiets als dit proberen:

update atable 
set adate=NULL
where anum='1'

Dit vereist natuurlijk dat adate is nullable.



  1. Hoe voeg ik een voorloopnul toe aan een getal in een Oracle SQL-query?

  2. Hoe open ik een DB-verbinding in Openshift?

  3. PHP / MySQL bouwboommenu

  4. Een mislukte Rails-migratie terugdraaien