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

ngày giờ ngay trong ứng dụng nhưng sai trong mysql [múi giờ]

Các loại cột trong MySQL là gì? Tôi nghi ngờ đó là DATETIME. Loại này không lưu trữ "khoảnh khắc trong thời gian", nó lưu trữ "giờ trên đồng hồ", vì vậy có thể có nghĩa là thời điểm khác nhau ở các múi giờ khác nhau.

Khi trình điều khiển MySQL ghi java.util.Date vào cột DATETIME, nó phải chọn một số múi giờ để viết "giờ trên đồng hồ", vì cùng một java.util.Date có thể có nghĩa là giờ khác nhau ở các múi giờ khác nhau. Nó lưu trữ giờ như trong múi giờ cục bộ của máy chủ MySQL.

LocalDateTime không có vấn đề này, vì nó giống như DATETIME. Nó đại diện cho giờ trên đồng hồ, không phải thời điểm, do đó năm / tháng / ngày-giờ / phút / giây chỉ được lưu trữ trong cơ sở dữ liệu. Thông báo trong nhật ký ngủ đông LocalDateTime được cung cấp nguyên trạng, trong khi có múi giờ ("CST") bên cạnh Ngày.

Nói chung, bạn nên lưu trữ thời gian luôn ở dạng UTC, vì vậy hãy sử dụng DateTime, không phải Date hay LocalDateTime. DateTime với trình chuyển đổi jadira luôn lưu trữ / đọc DATETIME dưới dạng UTC.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách ngăn FluentPDO suy luận sai tên bảng

  2. Truy vấn chậm khi sử dụng ORDER BY

  3. Nhận các giá trị từ cơ sở dữ liệu bằng cách sử dụng PHP PDO và cập nhật đầu vào để kiểm tra

  4. Bộ ký tự tốt nhất cho trường email là gì?

  5. Lặp lại cho đến khi mật mã là duy nhất