Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Speichern von Zeitinformationen:Zeitzone erforderlich?

Unabhängig davon, wie Sie es tun, wird es auf unterschiedliche Weise fehlschlagen, je nachdem, was sich ändert.

  1. Wenn Sie Zeitstempel in der entsprechenden Zeitzone als 2013-12-29 12:34:56 America/New_York speichern , schlägt dies fehl, wenn beispielsweise die Bronx plötzlich ihre eigene Zeitzone America/New_York_Bronx beginnt mit einem anderen Offset und Ihre Veranstaltung fand zufällig in der Bronx statt.

    Entscheiden Sie, wie wahrscheinlich dies ist und wie schlimm ein Fehler wäre.

  2. Wenn Sie Zeitstempel in UTC speichern und die Zeitzone, in der das Ereignis stattfindet, ihren Versatz neu definiert (z. B. durch Verschieben von DST-Daten oder vollständig auf einen anderen Versatz), kann die Ereigniszeit von der tatsächlichen Wanduhrzeit an diesem Ort abweichen. Wenn Sie 2013-12-29 12:34:56 UTC speichern für ein Ereignis um 13:34:56 in Berlin, Deutschland, und Berlin verschiebt seine Sommerzeit um 2013-12-29 12:34:56 UTC kann jetzt 14:34:56 Uhr Berliner Ortszeit entsprechen, während das Ereignis tatsächlich immer noch um 13:34 Uhr Ortszeit stattfindet.

    Entscheiden Sie, wie wahrscheinlich dies ist und wie schlimm ein Fehler wäre.

  3. Wenn Sie den UTC-Zeitstempel speichern und mit einem physischen Ort verknüpfen, den Sie dann mit einer Zeitzone verknüpfen, können Sie beiden Problemen entgegenwirken. Dafür müssen Sie aber den genauen physikalischen Ort hinterlegen, nicht nur "New York", sonst haben Sie nur Fall 1. mit einem weiteren Zwischenschritt. Wenn Sie den genauen physischen Standort speichern und eine genaue Möglichkeit haben, diesen Standort in eine Zeitzone aufzulösen, und Sie Ihre Zeitzonendatenbank auf dem neuesten Stand halten, können Sie so ziemlich alle Änderungsszenarien bewältigen.

    Entscheiden Sie, wie praktisch das ist und wie viel Ihnen diese zusätzliche Präzision wert ist.