Announcement

Collapse
No announcement yet.

Deutsche Zeit erhalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Deutsche Zeit erhalten

    Hallo

    ich einer Spalte vom Typ Datetime ist das Datum und Uhrzeit in UTC (Koordinierte Weltzeit) gespeichert. Nun ist die echte deutsche Zeit aber je nach Winter bzw. Sommerzeit um zwei bzw. eine Stunde verschoben.

    Ich benötige nun einen Select Befehl, der mir diese Spalte auf die deutsche Zeit umrechnet.

    Also:
    Wenn ich in dieser Spalte zwei Werte habe: 04.10.2010 09:30 Uhr und 04.04.2010 15:45 Uhr, dann möchte ich gerne folgende zwei Werte erhalten:
    04.10.2010 09:30 Uhr ----> 04.10.2010 11:30 Uhr (Plus 2 Stunden, da Winterzeit)
    04.04.2010 15:45 Uhr ----> 04.04.2010 16:45 Uhr (Plus 1 Stunde, da Sommerzeit)

    Wie kann man diese Umrechnung per (Microsoft 2008) SQL schnell und einfach lösen?

    Danke

  • #2
    Hallo,

    seit Version 2008 unterstützt der SQL Server mit dem Datentypen datetimeoffset auch Datumswerte mit UTC Offset-Werten.
    Der setzt aber auch voraus, das man den aktuellen Offset mitspeichert.

    Wenn Du das nicht von anfang an gemacht hast (was ich mal vermute), kann man im nachhinein nicht mehr wirklich umrechnen.
    Beispiel:
    Bekanntlich wird die Uhr von 03:00 auf 02:00 zurückgestellt.
    Wenn Du nun einen Wert mit 02:30 hast, ist der von vor der Umstellung oder von danach?
    Hast Du es nicht mit gespeichert, weiss man es eben nicht.

    Du könntest Dir eine Funktion (und + einer Tabelle) schreiben, die Dir den (vermuteteten) Offset liefert und damit weiter rechnen.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Warum?

      Hat die UTC auch eine Sommer- und Winterzeit?

      Ich habe ein der Tabelle die Weltzeit (UTC) gespeichert, und daraus soll nun die deutsche Zeit berechnet werden.

      Das muss doch möglich sein.
      Oder?

      Comment


      • #4
        Schau dir mal die Funktionen
        TODATETIMEOFFSET bzw. SWITCHOFFSET
        an

        Comment

        Working...
        X