Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP - използва STR_TO_DATE актуализира колона за дата и час, но е актуализиран празен запис като 0000-00-00 00: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 не казва дали е сутрин или следобед и по-късно извършването на изчисления на дата става много трудно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Изберете последния ред със специфична стойност

  2. Демонтиране на извиквания към базата данни на възел

  3. Android не успява да се свърже правилно с базата данни MySQL

  4. Как да изчислим броя на скокове между източник и дестинация?

  5. MySql не може да направи колона auto_increment