Heim >Datenbank >MySQL-Tutorial >Wie konvertiert man eine UTC-Datetime-Spalte in SQL in Ortszeit?
Effiziente Konvertierung von UTC-Datumszeit in Ortszeit in SQL-Abfragen
Viele Datenbanksysteme speichern Zeitstempel aus Konsistenzgründen in UTC. In dieser Anleitung wird gezeigt, wie Sie diese UTC-Datums-/Uhrzeitspalten direkt in Ihren SQL-Abfragen in Ortszeit konvertieren, sodass kein externer Code erforderlich ist.
SQL Server 2008 und höher:
Dieser Ansatz nutzt die Funktion SWITCHOFFSET
für eine präzise Konvertierung:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
Alternative (ausführliche) Methode:
Eine einfachere, wenn auch weniger elegante Methode verwendet DATEADD
und DATEDIFF
:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Wichtige Überlegungen:
-
) kann aufgrund potenzieller Rennbedingungen zu unvorhersehbaren Ergebnissen führen. Die oben genannten Methoden vermeiden dieses Problem.Mit diesen Informationen können Sie effiziente und genaue UTC-zu-Ortszeit-Konvertierungen direkt in Ihren SQL-Abfragen durchführen.
Das obige ist der detaillierte Inhalt vonWie konvertiert man eine UTC-Datetime-Spalte in SQL in Ortszeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!