2016-07-29 61 views
0

Gibt es keine Möglichkeit, Sql Server Management Studio so zu konfigurieren, dass in Abfrageergebnissen der Wert einer Spalte in der lokalen Zeitzone des Clients anstelle von UTC angezeigt wird?Zeigen Sie in SSMS den DateTimeOffset-Wert in lokaler Zeitzone an

Beispiel: Ich bin in der Zeitzone +02: 00. Ein Wert wird als 2016-07-27 22:00:00.0000000 +00:00 gespeichert. Derzeit wird dieser Wert in Abfrageergebnissen als solcher angezeigt. Ich möchte, dass es beim Ausführen dieser Abfrage auf SSMS auf meinem Rechner als 2016-07-28 00:00:00.0000000 +02:00 angezeigt (formatiert) wird.

Derzeit verwende ich manuell etwas wie , die offensichtlich sehr umständlich ist.

Wenn ich mich nicht irre, könnten in Oracle die NLS-Parameter auf Sitzungsebene dafür verwendet werden. Gibt es in Sql Server etwas Ähnliches?

Antwort

1

Weder SQL Server noch SSMS können mit dem Konzept einer "Sitzungszeitzone" (wie Oracle, MySql, etc.) arbeiten.

Es wäre auch nicht sinnvoll, den Offset trotzdem automatisch zu konvertieren, da der Offset tatsächlich Teil des gespeicherten datetimeoffset Wertes ist.

Wenn Sie SQL Server 2016 verwenden, oder Azure SQL-Datenbank, können Sie die neue AT TIME ZONE Anweisung, wie in verwenden:

SELECT yourdto AT TIME ZONE @thetimezoneid 

Ansonsten betrachten mein SQL Server Time Zone Support Projekt verwenden.

Keine von beiden kann Ihnen die Zeitzonen-ID des Systems geben. Sie müssen wissen, mit welcher Zeitzone Sie arbeiten möchten.