Heim > Datenbank > MySQL-Tutorial > Wie konvertiere ich SQL Server 2008 DATETIMEOFFSET in DATETIME unter Beibehaltung des Offsets?

Wie konvertiere ich SQL Server 2008 DATETIMEOFFSET in DATETIME unter Beibehaltung des Offsets?

Susan Sarandon
Freigeben: 2024-12-29 21:12:15
Original
991 Leute haben es durchsucht

How to Convert SQL Server 2008 DATETIMEOFFSET to DATETIME While Preserving the Offset?

Konvertieren von DATETIMEOFFSET in DateTime unter Beibehaltung des Offsets

In SQL Server 2008 führt die Konvertierung eines DATETIMEOFFSET-Felds in ein DATETIME-Feld normalerweise zum Verlust von Zeitinformation aufgrund des Offsets. Es gibt jedoch eine Möglichkeit, den Wert unter Beibehaltung des Offsets zu konvertieren und ihn effektiv in UTC umzuwandeln.

Der Schlüssel zu dieser Konvertierung liegt in der Verwendung der CONVERT-Funktion mit dem richtigen Stilargument. Das Argument style gibt an, wie die Konvertierung durchgeführt werden soll. Für diesen speziellen Zweck müssen wir Stil 1 verwenden:

SELECT CONVERT(datetime2, @createdon, 1)
Nach dem Login kopieren

Die obige Abfrage nimmt eine DATETIMEOFFSET-Variable (@createdon) und wandelt sie mithilfe von Stil 1 in einen DATETIME2-Wert um. Dieser Stil konvertiert den DATETIMEOFFSET-Wert in einen DATETIME2-Wert in UTC durch Subtrahieren des Offsets.

Betrachten Sie beispielsweise den folgenden DATETIMEOFFSET Wert:

2008-12-19 17:30:09.0000000 +11:00
Nach dem Login kopieren

Wenn wir diesen Wert mit Stil 1 konvertieren, erhalten wir:

2008-12-19 06:30:09.0000000
Nach dem Login kopieren

Dieses Ergebnis ist in UTC-Zeit angegeben, wodurch der Offset effektiv entfernt wird.

Beachten Sie, dass bei der Konvertierung von DATETIME2 in DATETIMEOFFSET mit Stil 1 der Offset einfach auf 00:00 gesetzt wird. Dies kann als schnelle Methode verwendet werden, um einen DATETIMEOFFSET-Wert mit einem Offset ungleich Null in einen DATETIMEOFFSET-Wert in UTC zu konvertieren:

SELECT convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich SQL Server 2008 DATETIMEOFFSET in DATETIME unter Beibehaltung des Offsets?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage