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

Lưu trữ thông tin thời gian:Múi giờ bắt buộc?

Cho dù bạn làm theo cách nào, nó sẽ thất bại theo những cách khác nhau tùy thuộc vào những gì đang thay đổi.

  1. Nếu bạn lưu trữ dấu thời gian theo múi giờ là 2013-12-29 12:34:56 America/New_York , điều này sẽ không thành công nếu Bronx đột nhiên bắt đầu múi giờ của riêng họ America/New_York_Bronx với một mức chênh lệch khác và sự kiện của bạn đã xảy ra ở Bronx.

    Quyết định khả năng xảy ra điều này và mức độ thất bại sẽ tồi tệ như thế nào.

  2. Nếu bạn lưu trữ dấu thời gian ở UTC và múi giờ trong đó sự kiện đang diễn ra đang xác định lại độ lệch của chúng (ví dụ:dịch chuyển ngày DST xung quanh hoặc chuyển hoàn toàn sang một khoảng chênh lệch khác), thì thời gian sự kiện có thể khác với thời gian trên đồng hồ treo tường thực tế tại vị trí đó. Nếu bạn lưu trữ 2013-12-29 12:34:56 UTC cho một sự kiện lúc 13:34:56 ở Berlin, Đức và Berlin thay đổi DST của họ xung quanh, 2013-12-29 12:34:56 UTC bây giờ có thể tương ứng với 14:34:56 giờ địa phương Berlin, trong khi sự kiện vẫn đang thực sự diễn ra lúc 13:34 giờ địa phương.

    Quyết định khả năng xảy ra điều này và mức độ thất bại sẽ tồi tệ như thế nào.

  3. Nếu bạn lưu trữ dấu thời gian UTC và liên kết nó với một vị trí thực tế mà sau đó bạn liên kết với múi giờ, bạn có thể khắc phục cả hai vấn đề. Nhưng đối với điều này, bạn sẽ phải lưu trữ vị trí thực tế chính xác, không chỉ "New York", nếu không bạn chỉ có trường hợp 1. với một bước trung gian nữa. Nếu bạn lưu trữ vị trí thực tế chính xác và có cách chính xác để giải quyết vị trí này theo múi giờ và bạn luôn cập nhật cơ sở dữ liệu múi giờ của mình, bạn có thể xử lý khá nhiều tình huống thay đổi.

    Quyết định mức độ thực tế của điều này và độ chính xác bổ sung này đáng giá bao nhiêu đối với bạ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. Trả về bản ghi thứ n từ truy vấn MySQL

  2. Cơ sở dữ liệu không cập nhật tự động với MySQL và Python

  3. Chèn hàng vào cơ sở dữ liệu với PreparedStatement

  4. Làm cách nào để viết một so sánh an toàn rỗng <=> trong SQL thuần túy?

  5. Làm thế nào để sử dụng mysqli_query () trong PHP?