問題は%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以降の日付計算が非常に困難になるかどうかはわかりません。