sql >> Databasteknik >  >> RDS >> Mysql

MySQL-felkod:1411. Felaktigt datetime-värde:'' för funktionen str_to_date

SQLException kommer inte direkt från MySQL, det utlöses förmodligen av ditt klientspråk. MySQL genererar bara en varning som du normalt kan ignorera. Vad som helst, ALLOW_INVALID_DATES SQL-läge bör faktiskt göra susen:

Varning:

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)

Ingen varning:

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)

Redigera: Om du letar efter ett sätt att skriva om frågan kan du prova något i stil med detta:

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

Naturligtvis kräver detta att adate är nullbar.



  1. Hur använder jag PHP korrekt för att koda MySQL-objekt till JSON?

  2. Varför returnerar inte denna sql-fråga några resultat som jämför flyttal?

  3. Filtrera DataGrid för namn med TextBox dynamiskt

  4. Hur tar man bort dubbletter från kommaseparerad lista med regexp_replace i Oracle?