Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

फ़ंक्शन str_to_date . के लिए गलत डेटाटाइम मान ... के कारण mysql तालिका नहीं बना सकता

आप जो व्यवहार देख रहे हैं, उससे मुझे लगता है कि आप एक सख्त 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 को mysqli में बदलें?

  2. समस्या को क्रमबद्ध न करें

  3. एकाधिक चयन फ़ील्ड से डेटा को संभालना

  4. तीसरी तालिका में अपने FK के साथ 2 तालिकाओं में शामिल होने की आवश्यकता है

  5. अलग-अलग कॉलम में एक ही टेबल में SUM () और COUNT () के साथ टेबल को कैसे अपडेट करें?