Hans Klüser

Viele ERP-Systeme verwenden technisch UTC-Zeiten in ihren Tabellen. Infolgedessen ist im BI-System eine Umrechnung erforderlich, um die richtigen Taggrenzen auszuweisen. Dabei muss neben der eigentlichen Zeitzonenverschiebung auch die Umstellung der Sommerzeit beachtet werden. Diese ist in der EU-Richtlinie 2000/84/EG geregelt und dürfte sich somit nicht so schnell ändern.

 

Verschiebung von Sonnenauf- und -untergang durch die Sommerzeit.

Regelung der Sommerzeit

Im weiteren betrachte ich nur die MEZ/MESZ für den Zeitraum nach 1990:

Umstellung Winterzeit -> Sommerzeit:
letzter Sonntag im März von 01:59:59 -> 03:00:00

Umstellung Sommerzeit-Winterzeit bis 1995:
letzter Sonntag im September von 02:59:59 -> 02:00:00

Umstellung Sommerzeit-Winterzeit ab 1996:
letzter Sonntag im Oktober von 02:59:59 -> 02:00:00

Da es bei der Umstellung von Sommer- auf Winterzeit die Stunde quasi doppelt gibt, gibt es zur Unterscheidung den Suffix A bzw. B.

Umsetzung mittels CTE

Zur Umsetzung mittels CTE gilt es zunächst, die Jahre ab 1990 bis 10 Jahre in die Zukunft aufzuspannen:

Jetzt die vier Zeiträume: Winterzeit, Sommerzeit und die A-Stunde und B-Stunde bei Rückstellung auf Winterzeit.
Um den letzten Sonntag des Monats zu erhalten berechne ich einfach den weekday des letzten Tages und ziehe diesen vom letzten Tag ab.

Bezug zu SAP COEP

Auslöser für diese Aufgabenstellung war die Umrechnung des TIMESTMP aus der SAP-Tabelle COEP. Diese weist 10000stel Sekunden seit dem 01.01.1990 aus. Hier muss man ein wenig aufpassen, da man schnell den Wertebereich von INT verlässt –  daher die etwas umständliche Umrechnung:

Eine mögliche Anwendung sieht dann wie folgt aus:

 

Hoffentlich kann ich dem ein oder anderen hiermit ein wenig Arbeit ersparen!