none
Datum/Uhrzeit zwischen Server und Client RRS feed

  • Frage

  • Hallo,

    ich benutze einen MSSQL Express, welcher im Internet (Dänemark) steht und dort auch alle Daten gespeichert werden. Das Datum wird über eine Webanwendung immer als DateTime Format an den MSSQL Express übertragen und im Format datetime gespeichert.

    Ich möchte nun über meine lokale Anwendung über das Formular und WebServices auf die gespeicherten Daten zugreifen und möchte Datum und Zeit getrennt haben.

    Nun zu meiner eigentlichen Frage. Ich mache mir gerade Gedanken dazu, ob es so einfach geht oder ob es zu Datum - Zeit fehlern kommen kann, da das Datum und Uhrzeit in Dänemark und USA gesepichert wurden, ich aber in Deutschland die Daten benötige. Könnt Ihr mir dazu ein paar Ratschläge geben, wie ich es am besten machen kann. Auf die gespeicherten Daten habe ich keinen Einfluß, muss also nehmen was ich bekomme.

    Gruß

    Claudia

    Montag, 18. Juni 2012 10:15

Antworten

  •  und im Format datetime gespeichert.

    Hallo Claudia,

    wenn die Datumswerte mit Datentyp datetime und nicht etwa als varchar gespeichert werden, gibt es grundsätzlich erst mal keine Probleme. Du solltest immer zwischen der Repräsentation eines Datumswertes im Client gemäß den Regionaleinstellungen und dem internen Format eines Datums unterscheiden; intern sieht es immer gleich aus.

    Was höchstens ein Problem mit sich bringen könnte, sind die Zeitzonenunterschiede zu den USA, wenn jeder immer seine lokale Zeit speichert ohne die Info auf den UTC Offset, könnte es etwas durcheinander geben.


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

    Montag, 18. Juni 2012 10:31
  • Hallo Claudia,

    Windows unterstützt in allen Versionen die Synchronisation mit einem Zeitserver.
    Zudem können angeschlossene Clients sich damit synchronisieren, siehe Konfigurieren eines autorisierenden Zeitservers in Windows Server

    Ist das eingerichtet, verwendet der SQL Server die Zeit des Rechners und es sollte dort keine Abweichungen geben.

    Was nun Dänemark und die USA angeht, so werden dort unterschiedliche Zeitzonen verwendet (die USA haben gleich mehrere).
    Deswegen sollte man die Zeit als UTC Zeit speichern und erst für die Anzeige in die lokale Zeit umrechnen. Das unterstützt der SQL Server mit Funktionen wie GETUTCDATE

    Eine getrennte Speicherung von Datum und Zeit geht mit aktuellen SQL Servern via Date und Time.
    Ist die Zeitzone für die Speicherung wichtig, so könntest Du den Datentyp datetimeoffset verwenden, weiteres siehe Datums- und Uhrzeittypen

    Gruß Elmar

    Montag, 18. Juni 2012 10:37
    Beantworter

Alle Antworten