sql >> Database >  >> RDS >> Mysql

PHP - gebruikt STR_TO_DATE update datetime-kolom maar het is een leeg record bijgewerkt zoals 0000-00-00 00:00:00

Het probleem is met het formaat %h:%i:%s

Dit gebeurt er in 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                                                   |
+--------------------------------------------------------+

Dus het geeft NULL terug en bij het invoegen gaat het niet, dus je moet het formaat %H:%i:%s gebruiken

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                                    |
+--------------------------------------------------------+

Voor 10-09-1985 01:00:00 het datumformaat is geldig met %h:%i:%s dus het werkt.

Het is beter om het datumformaat te kiezen Y-m-d H:i:s zelfs met de invoerdatums, sinds 10-09-1985 01:00:00 vertelt niet of het AM of PM is en later datumberekeningen erg moeilijk worden.



  1. Hoe u twee subquery's samenvoegt in SQLAlchemy en postgresql

  2. Selecteer de eerste rij van elke groep in sql

  3. COUNT gebruiken in GROUP_CONCAT

  4. Een cumulatief bedrag resetten?