Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP - sử dụng cột ngày giờ cập nhật STR_TO_DATE nhưng nó được cập nhật bản ghi trống như 0000-00-00 00:00:00

Vấn đề là với định dạng %h:%i:%s

Đây là những gì xảy ra trong 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                                                   |
+--------------------------------------------------------+

Vì vậy, NULL trả về và khi chèn nó sẽ không hoạt động, vì vậy bạn cần sử dụng định dạng %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                                    |
+--------------------------------------------------------+

Đối với 10-09-1985 01:00:00 định dạng ngày hợp lệ với %h:%i:%s vì vậy nó hoạt động.

Tốt hơn là chọn định dạng ngày Y-m-d H:i:s ngay cả với ngày nhập, kể từ 10-09-1985 01:00:00 không cho biết liệu AM hay PM của nó và việc tính toán ngày sau đó trở nên rất khó khăn.



  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 - Làm cách nào để cập nhật một bảng với các giá trị từ một bảng khác?

  2. Mysql chuyển đổi int thành MAC

  3. Thứ tự MySQL theo cùng thứ tự các giá trị trong mệnh đề IN

  4. Trong MySQL, có thể lấy lại hơn 1024 ký tự từ GROUP_CONCAT không

  5. Chế nhạo truy vấn chèn vào Cơ sở dữ liệu MySQL bằng Moq