Maison >base de données >tutoriel mysql >Comment convertir SQL Server 2008 DATETIMEOFFSET en DATETIME tout en préservant le décalage ?

Comment convertir SQL Server 2008 DATETIMEOFFSET en DATETIME tout en préservant le décalage ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 21:12:151021parcourir

How to Convert SQL Server 2008 DATETIMEOFFSET to DATETIME While Preserving the Offset?

Conversion de DATETIMEOFFSET en DateTime tout en préservant le décalage

Dans SQL Server 2008, la conversion d'un champ DATETIMEOFFSET en champ DATETIME entraîne généralement la perte de informations temporelles dues au décalage. Cependant, il existe un moyen de convertir la valeur tout en conservant le décalage, en la convertissant efficacement en UTC.

La clé de cette conversion réside dans l'utilisation de la fonction CONVERT avec l'argument de style correct. L'argument style spécifie comment la conversion doit être effectuée. Dans ce but spécifique, nous devons utiliser le style 1 :

SELECT CONVERT(datetime2, @createdon, 1)

La requête ci-dessus prend une variable DATETIMEOFFSET (@createdon) et la convertit en valeur DATETIME2 en utilisant le style 1. Ce style convertit la valeur DATETIMEOFFSET en une valeur DATETIME2 en UTC en soustrayant le décalage.

Par exemple, considérons le DATETIMEOFFSET suivant valeur :

2008-12-19 17:30:09.0000000 +11:00

Si nous convertissons cette valeur en utilisant le style 1, nous obtenons :

2008-12-19 06:30:09.0000000

Ce résultat est en heure UTC, supprimant ainsi le décalage.

Notez que la conversion de DATETIME2 en DATETIMEOFFSET à l'aide du style 1 définit simplement le décalage sur 00:00. Cela peut être utilisé comme méthode rapide pour convertir une valeur DATETIMEOFFSET avec un décalage non nul en une valeur DATETIMEOFFSET en UTC :

SELECT convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))

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