sql >> Databáze >  >> RDS >> Mysql

Kód chyby MySQL:1411. Nesprávná hodnota data a času:'' pro funkci str_to_date

SQLException nepochází přímo z MySQL, pravděpodobně jej spouští jazyk vašeho klienta. MySQL pouze vygeneruje varování, které můžete normálně ignorovat. V každém případě ALLOW_INVALID_DATES Režim SQL měl by vlastně udělej ten trik:

Upozornění:

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)

Žádné varování:

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)

Upravit: Pokud hledáte způsob, jak přepsat dotaz, můžete zkusit něco takového:

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

To samozřejmě vyžaduje adate má nulovou hodnotu.



  1. Základní třída VBA a odvozený objekt-2

  2. Úvod k balíčkům PL/SQL v databázi Oracle

  3. Data s otevřeným zdrojovým kódem rostou:Vyberte si MySQL, NoSQL nebo obojí

  4. Jak vytisknu všechny dotazy v Magento?