Problem ma format %h:%i:%s
Oto co dzieje się w 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 |
+--------------------------------------------------------+
Więc zwraca NULL, a po wstawieniu nie działa, więc musisz użyć formatu %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 |
+--------------------------------------------------------+
Dla 10-09-1985 01:00:00
format daty jest poprawny z %h:%i:%s
więc to działa.
Lepiej wybrać format daty Y-m-d H:i:s
nawet z datami wejściowymi, ponieważ 10-09-1985 01:00:00
nie mówi, czy jej rano lub po południu, a później obliczenia daty stają się bardzo trudne.