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

PHP-STR_TO_DATE更新日時列を使用していますが、0000-00-0000:00:00のような空のレコードが更新されています

    問題は%h:%i:%sの形式にあります

    ここでmysqlで何が起こるか

    mysql> select str_to_date('10-09-1985 00:00:00','%d-%m-%Y %h:%i:%s');
    +--------------------------------------------------------+
    | str_to_date('10-09-1985 00:00:00','%d-%m-%Y %h:%i:%s') |
    +--------------------------------------------------------+
    | NULL                                                   |
    +--------------------------------------------------------+
    

    したがって、NULLが返され、挿入時に実行されないため、%H:%i:%sの形式を使用する必要があります。

    mysql> select str_to_date('10-09-1985 00:00:00','%d-%m-%Y %H:%i:%s');
    +--------------------------------------------------------+
    | str_to_date('10-09-1985 00:00:00','%d-%m-%Y %H:%i:%s') |
    +--------------------------------------------------------+
    | 1985-09-10 00:00:00                                    |
    +--------------------------------------------------------+
    

    10-09-1985 01:00:00の場合 日付形式は%h:%i:%sで有効です だからその働き。

    日付形式を選択することをお勧めしますY-m-d H:i:s 10-09-1985 01:00:00以降、入力された日付でも そのAMまたはPM以降の日付計算が非常に困難になるかどうかはわかりません。



    1. MySQLルートパスワードをリセットする方法

    2. PythonとDjangoOperationalError(2006、「MySQLサーバーがなくなりました」)

    3. リストを取得するためのSQL集計関数

    4. MySQL –エラーの修正–WordPressデータベースエラークエリのキーPRIMARYの重複エントリINSERTINTO wp_options