Mysql
 sql >> база данни >  >> RDS >> Mysql

Не може да се създаде mysql таблица поради неправилна стойност за дата и час ... за функция str_to_date

Поведението, което виждате, предполага, че работите в строг SQL_MODE (което е добра идея като цяло BTW).

Може да успеете да постигнете това, което искате, като зададете по-малко строг SQL_MODE за вашата сесия.

Ето пример, показващ вашия CREATE TABLE неуспешен израз в MySQL 5.7 с STRICT_ALL_TABLES режим, но успявам, след като премахна това ограничение:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ::Изпълнете SQL оператор в променлива

  2. С Laravel Migration, Как да промените типа данни на колона и да актуализирате съществуващите й данни, за да отговарят на новия тип данни, без да използвате необработени SQL заявки?

  3. BLOB в MySQL изглед вместо правилните данни

  4. MySql - първо подредете по стойност на низа

  5. Как да направите автоматично увеличение на първичния ключ на MySQL таблицата с някакъв префикс