Convertir des données importées en dates avec fuseaux horaires
Maintenant que nous avons vu les trois fonctions de conversion sécurisées quant aux types, 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 les données de cette table et nous les avons examinées dans un exercice précédent. Cette fois-ci, nous récupérerons les données pour toutes les lignes, pas seulement celles que l'application d'importation a marquées comme valides.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
Instructions de l’exercice
- Insérez le nom de la fonction manquante
TRY_XXX()dans l'expression de table communeEventDates. - Convertissez les dates d'événements
EventDateOffseten'UTC'. Nommez ce résultatEventDateUTC. - Convertissez les dates d'événements
EventDateOffseten'US Eastern Standard Time'en utilisantAT TIME ZONE. Nommez ce résultatEventDateUSEast.
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;