2011-09-28 41 views
6

Loại dữ liệu/cấu trúc thích hợp nào để lưu trữ bù thời gian trong MySQL? Tôi chỉ muốn lưu trữ giá trị số (thành phố và quốc gia rõ ràng được lưu trữ trong các cột khác).Kiểu dữ liệu/cấu trúc để lưu trữ bù trừ múi giờ trong MySQL

Ví dụ:

  • -5: 00 Guayaquil, ECU
  • -4: 30 Caracas, VEN
  • 0:00 Một số thành phố
  • 2:00 Bonn, GER
+4

Nếu bạn chỉ lưu trữ "giá trị số", bạn không thực sự lưu trữ múi giờ, bạn chỉ lưu trữ chênh lệch múi giờ. Có một sự khác biệt lớn, đặc biệt là nếu bạn đang đối phó với những ngày trong tương lai, nơi chênh lệch có thể thay đổi bất kỳ lúc nào vì lý do chính trị. – nogridbag

Trả lời

5

Bạn nên sử dụng TIME. Đó là loại dữ liệu phù hợp cho tác vụ: bạn có định dạng và calculations khả dụng. Hơn nữa, theo các tài liệu, TIME cũng được cho là được sử dụng như là kết quả của sự khác biệt giữa hai khoảnh khắc, đó là những gì Timezones là trong thực tế.

Từ các tài liệu:

MySQL lấy và hiển thị giá trị LÚC NÀO trong 'HH: MM: SS' định dạng (hoặc 'HHH: MM: SS' định dạng trong nhiều giờ lớn giá trị). Giá trị TIME có thể nằm trong khoảng từ '-838: 59: 59' đến '838: 59: 59'. Phần giờ có thể quá lớn vì loại THỜI GIAN có thể được sử dụng không chỉ để biểu thị thời gian trong ngày (trong đó phải dưới 24 giờ), nhưng cũng có thời gian trôi qua hoặc khoảng thời gian giữa hai sự kiện (có thể lớn hơn 24 giờ, hoặc thậm chí là âm).

Các vấn đề liên quan