Meine Datenbank-Anwendung wird an mehreren Standorten in verschiedenen Zeitzonen eingesetzt werden.Bestimmen Zeitzone Offset in T-SQL
Ich brauche eine T-SQL-Funktion, die den UTC-Zeitstempel von Mitternacht für YTD Berechnungen 1 des laufenden Jahres Januar bestimmen werden. Alle Daten werden in UTC-Zeitstempeln gespeichert.
Zum Beispiel ist Chicago UTC-6 mit Sommerzeit (DST), die Funktion muss 2008-01-01 06:00:00 zurückgeben, wenn sie 2008 in Chicago ausgeführt wird. Wenn es nächstes Jahr in New York (GMT-5 + DST) läuft, muss es '2009-01-01 05:00:00' zurückgeben.
Ich kann das aktuelle Jahr von Jahr erhalten (GETDATE()). Ich dachte, ich könnte eine DATEDIFF zwischen GETDATE tun() und GETUTCDATE() den Offset zu bestimmen, aber das Ergebnis hängt davon ab, ob die Abfrage während DST ausgeführt wird oder nicht. Ich kenne keine integrierten T-SQL-Funktionen zur Bestimmung des Offsets oder ob die aktuelle Zeit DST ist oder nicht?
Hat jemand eine Lösung für dieses Problem in T-SQL? Ich könnte es hart codieren oder in einer Tabelle speichern, würde es aber lieber nicht tun. Ich nehme an, dass dies eine perfekte Situation für die Verwendung der CLR-Integration in SQL Server 2005 ist. Ich frage mich nur, ob es eine T-SQL-Lösung gibt, die mir nicht bekannt ist?
Danke Eric. Ich habe eine tabellenbasierte Lösung implementiert, wie Sie es in der Vergangenheit vorgeschlagen haben. Ich habe mich nur gefragt, ob es etwas gibt, das ich vermisst habe, das mein Leben leichter machen würde. –