Maison >base de données >tutoriel mysql >Comment convertir les colonnes Datetime UTC en heure locale dans les instructions SQL Select ?

Comment convertir les colonnes Datetime UTC en heure locale dans les instructions SQL Select ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-17 04:27:10754parcourir

How to Convert UTC Datetime Columns to Local Time in SQL Select Statements?

Conversion des colonnes datetime UTC en heure locale dans les instructions de sélection SQL

Lors de l'exécution de requêtes de sélection SQL, il peut être nécessaire de convertir les colonnes datetime UTC en heure locale pour faciliter interprétation et présentation. Cette conversion peut être effectuée sans modifier la base de données ni utiliser de code externe.

Méthode de conversion

Dans SQL Server 2008 ou version ultérieure, la syntaxe suivante peut être utilisée :

SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable

Une alternative plus courte est :

SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable

Considérations

Il est important d'éviter d'utiliser soustraction (-) pour calculer les différences de date, car cette approche peut conduire à des résultats inexacts en raison d'opérations non atomiques.

Ajustement de l'heure d'été

Les méthodes fournies ne tiennent pas compte de l'heure d'été (DST ). Si un ajustement de l'heure d'été est requis, reportez-vous à la question suivante :

  • [Comment créer la fonction de début et de fin de l'heure d'été dans SQL Server](https://stackoverflow.com/questions/2614192/how -pour-créer-l'heure d'été-heure-de-début-et-fin-fonction-dans-sql-server)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn