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

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

Patricia Arquette
Libérer: 2025-01-17 04:22:09
original
298 Les gens l'ont consulté

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

Convertir efficacement l'heure UTC en heure locale dans les requêtes SQL

De nombreux systèmes de bases de données stockent les horodatages au format UTC pour des raisons de cohérence. Ce guide montre comment convertir ces colonnes datetime UTC en heure locale directement dans vos requêtes SQL, éliminant ainsi le besoin de code externe.

SQL Server 2008 et versions ultérieures :

Cette approche exploite la fonction SWITCHOFFSET pour une conversion précise :

<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

Méthode alternative (verbale) :

Une méthode plus simple, bien que moins élégante, utilise DATEADD et DATEDIFF :

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

Considérations clés :

  • Éviter la soustraction de date : La soustraction directe de date (-) peut donner des résultats imprévisibles en raison de conditions de concurrence potentielles. Les méthodes ci-dessus évitent ce problème.
  • Heure d'été (DST) : Les solutions fournies ne gèrent pas automatiquement les ajustements d'heure d'été. Pour une gestion précise de l'heure d'été, reportez-vous aux ressources traitant des calculs d'heure d'été dans SQL Server (par exemple, discussions sur Stack Overflow sur la création de fonctions de début/fin de DST).

Ces informations vous permettent d'effectuer des conversions efficaces et précises de l'heure UTC en heure locale directement dans vos requêtes SQL.

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