Die effiziente Konvertierung von UTC-Datum/Uhrzeit-Spalten in Ortszeit innerhalb von SQL Server-Abfragen ist für eine genaue Datenpräsentation und -analyse von entscheidender Bedeutung. Hier sind wirksame Methoden, um potenzielle Fallstricke zu vermeiden:
SQL Server 2008 und höher:
SWITCHOFFSET()
und CONVERT()
: Diese robuste Methode verarbeitet Zeitzonenversätze:<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
DATEADD()
, DATEDIFF()
und GETDATE()
: Eine prägnantere Alternative:<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Wichtiger Hinweis: Von der direkten Datumssubtraktion mit dem Operator -
wird dringend abgeraten. Dies kann aufgrund möglicher Rennbedingungen zu unvorhersehbaren Ergebnissen führen.
Überlegungen zur Sommerzeit (DST):
Die oben genannten Methoden verarbeiten keine Sommerzeitübergänge. Für genaue DST-Anpassungen konsultieren Sie diese Stack Overflow-Ressource:
So erstellen Sie die Start- und Endfunktion für die Sommerzeit in SQL Server
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTC-Datetime-Spalten in Ortszeit in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!