Sven Rautenberg: MySQL5: CONVERT_TZ

Beitrag lesen

Moin!

Habt ihr einen Trick, um das elegant und ohne Hilfsfunktion oder Hilfstabelle zu lösen?

Nein, ohne Zeitzonentabellen kann es MySQL nicht, eine Hilfsfunktion willst du auch nicht, richtig raten und in den Kalender schauen kann MySQL nicht.

Was spricht denn dagegen, die Zeitzonentabelle von MySQL zu füllen oder füllen zu lassen (sowie regelmäßig mal upzudaten)? Dann kann CONVERT_TZ() mit Zonennamen arbeiten und selbständig richtig umrechnen.

Es ist anzumerken, dass Zeitzonenkonvertierung nur für die Vergangenheit korrekt funktionieren kann. Denn Sommerzeit ist ein künstliches Konstrukt und kann vom Menschen beliebig verändert werden, deshalb weiß man nur für die Vergangenheit, wie sich der Mensch jeweils entschieden hat - die Pläne für die Zukunft sind hingegen noch nicht in Stein gemeißelt und können auch recht kurzfristig geändert werden.

Im Prinzip ist auch die Zugehörigkeit zu einer Zeitzone künstlich und kann geändert werden - Länder oder Gebiete am Rand einer Zeitzone können sich im Prinzip entscheiden, lieber zu der benachbarten Zeitzone zu gehören.

Wenn man sowas korrekt berechnen will, helfen Zeitzonenangaben wie "MEZ" oder "+0100" nichts, weil das nur der anzuwendende Offset zu UTC ist - erforderlich ist die Zeitzonenangabe wie "Europe/Berlin", denn nur damit weiß man, nach welchen örtlichen Bestimmungen die Zeitzone auch historisch zu berechnen ist.

- Sven Rautenberg