Convertir des données importées en dates avec fuseaux horaires
Maintenant que nous avons vu les trois fonctions de conversion avec gestion d’erreurs, nous pouvons commencer à les appliquer à de vrais jeux de données. Dans ce scénario, nous allons analyser les données de la table dbo.ImportedTime. Nous avons utilisé une autre application pour charger des données dans cette table et nous l’avons examinée dans un exercice précédent. Cette fois, nous allons récupérer les données pour toutes les lignes, pas seulement celles que l’application d’import a marquées comme valides.
Cet exercice fait partie du cours
<cours>Analyse de séries temporelles dans SQL Server</cours>Instructions de l’exercice
- Complétez le nom de la fonction
TRY_XXX()manquante dans l’expression de table communeEventDates. - Convertissez les dates d’événement
EventDateOffseten'UTC'. Nommez cette sortieEventDateUTC. - Convertissez les dates d’événement
EventDateOffseten'US Eastern Standard Time'à l’aide deAT TIME ZONE. Nommez cette sortieEventDateUSEast.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
WITH EventDates AS
(
SELECT
-- Fill in the missing try-conversion function
___(DATETIME2(3), it.EventDate) AT TIME ZONE it.TimeZone AS EventDateOffset,
it.TimeZone
FROM dbo.ImportedTime it
INNER JOIN sys.time_zone_info tzi
ON it.TimeZone = tzi.name
)
SELECT
-- Fill in the approppriate event date to convert
CONVERT(NVARCHAR(50), ed.EventDateOffset) AS EventDateOffsetString,
CONVERT(DATETIME2(0), ed.EventDateOffset) AS EventDateLocal,
ed.TimeZone,
-- Convert from a DATETIMEOFFSET to DATETIME at UTC
CAST(ed.EventDateOffset AT TIME ZONE '___' AS DATETIME2(0)) AS EventDateUTC,
-- Convert from a DATETIMEOFFSET to DATETIME with time zone
CAST(ed.EventDateOffset ___ ___ ___ 'US Eastern Standard Time' AS DATETIME2(0)) AS EventDateUSEast
FROM EventDates ed;