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

Kan ikke oprette mysql-tabel på grund af forkert datotidsværdi ... for funktionen str_to_date

Den adfærd, du ser, antyder for mig, at du kører i en streng SQL_MODE (hvilket er en god idé generelt BTW).

Du kan muligvis opnå det, du ønsker, ved at indstille en mindre streng SQL_MODE til din session.

Her er et eksempel, der viser din CREATE TABLE sætning fejler i MySQL 5.7 med STRICT_ALL_TABLES tilstand, men det lykkes, når jeg fjerner denne begrænsning:

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. Find forælder rekursivt ved hjælp af Query

  2. ActiveRecord::AdapterNotSpecified databasekonfiguration angiver ikke adapter

  3. INSERT-sætningen er i konflikt med FOREIGN KEY-begrænsningen - SQL Server

  4. Hvordan opretter man ENUM i SQLAlchemy?