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

MySQLエラーコード:1411。関数str_to_dateの日時の値が正しくありません:''

    SQLException MySQLから直接取得されたものではなく、おそらくクライアントの言語によってトリガーされます。 MySQLは、通常は無視できる警告を生成するだけです。いずれにせよ、ALLOW_INVALID_DATES SQLモードすべき 実際にトリックを実行します:

    警告:

    mysql> SET @@SESSION.sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));
    Query OK, 1 row affected, 1 warning (0.01 sec)
    
    mysql> show warnings;
    +---------+------+-------------------------------------------------------+
    | Level   | Code | Message                                               |
    +---------+------+-------------------------------------------------------+
    | Warning | 1411 | Incorrect datetime value: '' for function str_to_date |
    +---------+------+-------------------------------------------------------+
    1 row in set (0.00 sec)
    

    警告なし:

    mysql> SET @@SESSION.sql_mode='ALLOW_INVALID_DATES';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));
    Query OK, 1 row affected (0.03 sec)
    

    編集: クエリを書き直す方法を探している場合は、次のような方法を試すことができます。

    update atable 
    set adate=NULL
    where anum='1'
    

    もちろん、これにはadateが必要です。 null許容です。



    1. Android:NullPointerExceptionフラグメント内のリストビューにデータベースをロードできません

    2. 特定の文字が文字列に出現する回数

    3. MySQLのデータファイルのロードでアクセスが拒否されました

    4. Postgresql集約配列