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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-17 04:42:09630Durchsuche

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

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:

  • Verwenden Sie die Funktion 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>
  • Alternativ können Sie zur Konvertierung die prägnantere 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!

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