Konvertieren Sie die UTC-Datums- und Uhrzeitspalte in der SQL-SELECT-Anweisung in Ortszeit
Beim Ausführen von SQL SELECT-Abfragen kann es erforderlich sein, UTC-Datums-/Uhrzeitspalten in Ortszeit zu konvertieren, um die Benutzerfreundlichkeit zu verbessern und die Genauigkeit der Datendarstellung zu verbessern. Dies kann durch Techniken erreicht werden, die für die verwendete SQL-Version spezifisch sind.
Für SQL Server 2008 oder höher:
CONVERT
in Kombination mit SWITCHOFFSET
und CONVERT(datetimeoffset)
, um UTC-Spalten unter Berücksichtigung des Systemzeitzonenversatzes in Ortszeit umzuwandeln. SQL-Syntax:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
DATEADD
-Funktion verwenden. SQL-Syntax:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Hinweis:
Vermeiden Sie die Verwendung des Minuszeichens -
zum Subtrahieren von Datumsangaben für die Konvertierung, da dies aufgrund von Wettlaufbedingungen zwischen System- und lokalen Datums- und Uhrzeitangaben zu unvorhersehbaren Ergebnissen führen kann.
Zusätzliche Hinweise:
Die bereitgestellte Methode berücksichtigt nicht die Sommerzeit (DST). Informationen zu DST-Anpassungen finden Sie im Thema „Stack Overflow“:
„So erstellen Sie Start- und Endfunktionen für die Sommerzeit in SQL Server“
Das obige ist der detaillierte Inhalt vonWie konvertiert man eine UTC-Datetime-Spalte in SQL-SELECT-Anweisungen in Ortszeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!