2011-09-28 13 views
6

Jaki byłby właściwy typ danych/struktura do przechowywania przesunięć stref czasowych w MySQL? Chcę tylko zapisać wartość liczbową (miasto i kraj są oczywiście przechowywane w innych kolumnach).Typ danych/struktura do przechowywania przesunięcia strefy czasowej w MySQL

Przykłady:

  • -5: 00 Guayaquil
  • ECU
  • -4 30 Caracas, Wen
  • 0:00 Niektóre miasta
  • 2:00 Bonn, GER
+4

Jeśli przechowujesz tylko "wartość liczbową", w rzeczywistości nie przechowujesz strefy czasowej, przechowujesz tylko przesunięcie strefy czasowej. Jest duża różnica, szczególnie jeśli masz do czynienia z przyszłymi datami, w których offset może się zmienić w dowolnym momencie z przyczyn politycznych. – nogridbag

Odpowiedz

5

Powinieneś użyć TIME. Jest to właściwy typ danych dla zadania: masz formatowanie i calculations są dostępne. Co więcej, zgodnie z dokumentami, TIME ma być również używany w wyniku różnic między dwoma momentami, czyli tak naprawdę są to strefy czasowe.

Od docs:

MySQL pobiera i wyświetla wartości czasu w 'hh: mm: ss' Format (lub 'HHH: MM: SS' format dużych wartościach godzin). Wartości TIME mogą być w zakresie od "-838: 59: 59" do "838: 59: 59". Część godzin może być tak duża, ponieważ typ TIME może być używany nie tylko do określenia pory dnia (która musi być krótsza niż 24 godziny), ale także do upływu czasu lub przedziału czasu między dwoma zdarzeniami (które mogą być znacznie więcej niż 24 godziny lub nawet ujemny).

Powiązane problemy