sql >> Database teknologi >  >> RDS >> Mysql

MySQL-fejlkode:1411. Forkert datetime-værdi:'' for funktionen str_to_date

SQLException kommer ikke direkte fra MySQL, det er sandsynligvis udløst af dit klientsprog. MySQL vil bare generere en advarsel, du normalt kan ignorere. Uanset hvad, ALLOW_INVALID_DATES SQL-tilstand bør faktisk gøre tricket:

Advarsel:

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 advarsel:

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)

Rediger: Hvis du leder efter en måde at omskrive forespørgslen på, kan du prøve noget som dette:

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

Dette kræver selvfølgelig at adate er nullbar.



  1. Opretter du en brugerdefineret forespørgsel med Spring DATA JPA?

  2. Left Outer Join returnerer ikke alle rækker fra mit venstre bord?

  3. Hvordan konfigureres spring boot-applikationen til at bruge SSL/TLS over MySQL?

  4. Omdøb tabel med mellemrum mysql