sql >> Databáze >  >> RDS >> Mysql

PHP – uživatel STR_TO_DATE aktualizuje sloupec datum a čas, ale aktualizuje se prázdný záznam jako 0000-00-00 00:00:00

Problém je s formátem %h:%i:%s

Zde je to, co se děje v 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                                                   |
+--------------------------------------------------------+

Takže vrací NULL a při vložení nejde, takže musíte použít formát %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                                    |
+--------------------------------------------------------+

Pro 10-09-1985 01:00:00 formát data je platný s %h:%i:%s takže to funguje.

Je lepší zvolit formát data Y-m-d H:i:s i se vstupními daty, od 10-09-1985 01:00:00 neřekne, zda je jeho AM nebo PM a pozdější výpočty data velmi obtížné.



  1. Výsledky skupiny Concat Cut Off

  2. Jak váš ovladač Oracle ODBC načte klienta Oracle?

  3. PYTHON:Aktualizujte MULTIPLE SLOUPCE pomocí proměnných pythonu

  4. Jednoduchý příklad vztahu many-to-many pomocí Sequelize