sql >> Database >  >> RDS >> Mysql

Kan mysql-tabel niet maken vanwege onjuiste datetime-waarde ... voor functie str_to_date

Het gedrag dat u ziet, houdt voor mij in dat u in een strikte SQL_MODE . draait (wat in het algemeen een goed idee is).

U kunt mogelijk bereiken wat u wilt door een minder strikte SQL_MODE . in te stellen voor uw sessie.

Hier is een voorbeeld van uw CREATE TABLE instructie mislukt in MySQL 5.7 met STRICT_ALL_TABLES modus, maar slaag zodra ik die beperking verwijder:

mysql> select @@session.sql_mode;
+--------------------+
| @@session.sql_mode |
+--------------------+
| STRICT_ALL_TABLES  |
+--------------------+
1 row in set (0.00 sec)

mysql> CREATE TABLE myTable AS select date(str_to_date("XXXX","%d-%M-%Y %H:%i:%S"));
ERROR 1411 (HY000): Incorrect datetime value: 'XXXX' for function str_to_date

mysql> set session sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE myTable AS select date(str_to_date("XXXX","%d-%M-%Y %H:%i:%S"));
Query OK, 1 row affected, 1 warning (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 1

mysql> select * from myTable;
+-----------------------------------------------+
| date(str_to_date("XXXX","%d-%M-%Y %H:%i:%S")) |
+-----------------------------------------------+
| NULL                                          |
+-----------------------------------------------+
1 row in set (0.01 sec)


  1. Hoe een json-array in rijen in postgres te veranderen

  2. PIVOT-, UNPIVOT- en Reverse PIVOT-statements begrijpen

  3. MySQL – MariaDB – De allereerste opgeslagen procedure schrijven

  4. Hetzelfde schema gebruiken voor meerdere SQL Server Agent-taken (T-SQL)