Konvertieren Sie die UTC-Datums-/Uhrzeitspalte in der SQL-Abfrage in die Ortszeit
Der Umgang mit UTC-Datums- und Uhrzeitangaben in SQL-Abfragen kann manchmal umständlich sein, insbesondere wenn Sie sie in Ihrer lokalen Zeitzone anzeigen müssen. Es gibt einfache Techniken zum Konvertieren von UTC-Datums- und Uhrzeitangaben in Ortszeit, sodass keine codebasierten Konvertierungen erforderlich sind.
Lösung für SQL Server 2008 und höher:
Verwenden Sie für SQL Server 2008 oder höher die folgende Abfrage:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
Alternative Syntax:
Alternativ können Sie die folgende vereinfachte Version verwenden:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Hinweis: Vermeiden Sie das Subtrahieren von Datumsangaben
Es ist wichtig zu beachten, dass die Verwendung des Operators - zum Subtrahieren von Daten nicht empfohlen wird, da dies aufgrund der Rennbedingungen zu unbestimmten Ergebnissen führen kann.
Berücksichtigen Sie die Sommerzeit (DST)
Diese bereitgestellte Lösung berücksichtigt keine Sommerzeitanpassungen. Bei Bedarf lesen Sie bitte die folgende Frage zum Stapelüberlauf:
//m.sbmmt.com/link/95743904f0de5aa6327dee27efdc81b4
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTC Datetime in Ortszeit in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!