Heim >Datenbank >MySQL-Tutorial >Wie konvertiert man eine UTC-Datetime-Spalte in SQL in Ortszeit?

Wie konvertiert man eine UTC-Datetime-Spalte in SQL in Ortszeit?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-17 04:22:09301Durchsuche

How to Convert a UTC Datetime Column to Local Time in SQL?

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:

  • Datumssubtraktion vermeiden: Die direkte Datumssubtraktion (-) kann aufgrund potenzieller Rennbedingungen zu unvorhersehbaren Ergebnissen führen. Die oben genannten Methoden vermeiden dieses Problem.
  • Sommerzeit (DST): Die bereitgestellten Lösungen verarbeiten DST-Anpassungen nicht automatisch. Informationen zur genauen DST-Behandlung finden Sie in den Ressourcen, die sich mit DST-Berechnungen in SQL Server befassen (z. B. Stack Overflow-Diskussionen zum Erstellen von DST-Start-/Endfunktionen).

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!

Stellungnahme:
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