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>
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>
Considérations clés :
-
) peut donner des résultats imprévisibles en raison de conditions de concurrence potentielles. Les méthodes ci-dessus évitent ce problème.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!