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

Comment convertir une colonne Datetime UTC en heure locale dans les instructions SQL SELECT ?

Mary-Kate Olsen
Libérer: 2025-01-17 04:42:09
original
628 Les gens l'ont consulté

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

Convertir la colonne de date et d'heure UTC en heure locale dans l'instruction SQL SELECT

Lors de l'exécution de requêtes SQL SELECT, il peut être nécessaire de convertir les colonnes datetime UTC en heure locale pour améliorer la convivialité et la précision de la représentation des données. Ceci peut être réalisé grâce à des techniques spécifiques à la version SQL utilisée.

Pour SQL Server 2008 ou supérieur :

  • Utilisez la fonction CONVERT combinée avec SWITCHOFFSET et CONVERT(datetimeoffset) pour convertir les colonnes UTC en heure locale, en tenant compte du décalage horaire du système.

Syntaxe SQL :

<code class="language-sql">SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable</code>
Copier après la connexion
  • Vous pouvez également utiliser la fonction DATEADD plus concise pour la conversion.

Syntaxe SQL :

<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable</code>
Copier après la connexion

Remarque :

Évitez d'utiliser le signe moins - pour soustraire les dates de conversion, car cela peut conduire à des résultats imprévisibles en raison de conditions de concurrence entre le système et les dates-heures locales.

Notes supplémentaires :

La méthode fournie ne prend pas en compte l'heure d'été (DST). Pour les ajustements de l'heure d'été, veuillez vous référer au sujet Stack Overflow :

"Comment créer des fonctions de début et de fin d'heure d'été 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal