Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat membuat tabel mysql karena nilai datetime salah ... untuk fungsi str_to_date

Perilaku yang Anda lihat menyiratkan kepada saya bahwa Anda menjalankan SQL_MODE yang ketat (yang merupakan ide bagus secara umum BTW).

Anda mungkin dapat mencapai apa yang Anda inginkan dengan menyetel SQL_MODE yang tidak terlalu ketat untuk sesi Anda.

Berikut ini contoh yang menunjukkan CREATE TABLE your Anda pernyataan gagal di MySQL 5.7 dengan STRICT_ALL_TABLES mode, tetapi berhasil setelah saya menghapus batasan itu:

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. Tidak dapat terhubung ke server MySQL lokal melalui soket

  2. Buat tabel MySQL dengan variabel PHP

  3. Masalah instalasi RMySQL dengan Mysql 5.5

  4. JDBC VS Hibernasi

  5. Sedikit saran tentang Cassandra vs. MySQL