Maison >base de données >tutoriel mysql >Comment convertir l'heure UTC en heure locale dans SQL Server ?

Comment convertir l'heure UTC en heure locale dans SQL Server ?

DDD
DDDoriginal
2025-01-17 04:34:10489parcourir

How to Convert UTC Datetime to Local Time in SQL Server?

Convertir la colonne datetime UTC en heure locale dans une requête SQL

La gestion des dates et heures UTC dans les requêtes SQL peut parfois être gênante, surtout lorsque vous devez les afficher dans votre fuseau horaire local. Il existe des techniques simples pour convertir l'heure UTC en heure locale, éliminant ainsi le besoin de conversions basées sur le code.

Solution pour SQL Server 2008 et supérieur :

Pour SQL Server 2008 ou version ultérieure, utilisez la requête suivante :

<code class="language-sql">SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable</code>

Syntaxe alternative :

Vous pouvez également utiliser la version simplifiée suivante :

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

Remarque : évitez de soustraire des dates

Il est important de noter que l'utilisation de l'opérateur - pour soustraire des dates n'est pas recommandée car cela peut conduire à des résultats indéterminés en raison des conditions de course.

Considérez l'heure d'été (DST)

Cette solution fournie ne prend pas en compte les ajustements d'heure d'été. Si nécessaire, veuillez vous référer à la question Stack Overflow suivante :

https://www.php.cn/link/95743904f0de5aa6327dee27efdc81b4

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