sql >> データベース >  >> RDS >> Mysql

関数str_to_dateの日時の値が正しくないためにmysqlテーブルを作成できません...

    表示される動作は、厳密なSQL_MODEで実行していることを意味します。 (これは一般的には良い考えです)

    厳密性の低いSQL_MODEを設定することで、目的を達成できる場合があります。 あなたのセッションのために。

    CREATE TABLEを示す例を次に示します。 STRICT_ALL_TABLESを使用してMySQL5.7でステートメントが失敗する モードですが、その制限を削除すると成功します:

    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. Mysqlの起動の問題|エラー!サーバーはPIDファイルを更新せずに終了します

    2. SQLServerのダーティリードの問題を理解する

    3. MySQLで累積合計を計算する方法

    4. MySQLチュートリアル–MySQLを学ぶための初心者向けガイド