Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można utworzyć tabeli mysql z powodu nieprawidłowej wartości daty i godziny ... dla funkcji str_to_date

Zachowanie, które widzisz, sugeruje, że działasz w ścisłym SQL_MODE (co jest ogólnie dobrym pomysłem BTW).

Możesz być w stanie osiągnąć to, co chcesz, ustawiając mniej rygorystyczny SQL_MODE na sesję.

Oto przykład pokazujący Twój CREATE TABLE Błąd instrukcji w MySQL 5.7 z STRICT_ALL_TABLES tryb, ale udało się, gdy usunę to ograniczenie:

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. Jak zamodelować strukturę MySQL, aby poradzić sobie z uwierzytelnianiem? Z oddzielonymi informacjami o użytkownikach

  2. jqGrid Act Dziwne ponowne ładowanie danych po wstawieniu i aktualizacji

  3. Filtrowanie danych wejściowych użytkownika

  4. Jak wyłączyć i włączyć wszystkie ograniczenia w tabeli mysql, w tym. PK FK CHK UNI itp

  5. MYSQL Left Join COUNTS z wielu tabel