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.
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
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.
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 :
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!