CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Insérez le nom de la fonction manquante TRY_XXX() dans l'expression de table commune EventDates.
  • Convertissez les dates d'événements EventDateOffset en 'UTC'. Nommez ce résultat EventDateUTC.
  • Convertissez les dates d'événements EventDateOffset en 'US Eastern Standard Time' en utilisant AT TIME ZONE. Nommez ce résultat EventDateUSEast.

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;
Modifier et exécuter le code