LoslegenKostenlos loslegen

Importierte Daten in Datumsangaben mit Zeitzonen umwandeln

Nachdem wir die drei typsicheren Konvertierungsfunktionen kennengelernt haben, können wir sie auf echte Datensätze anwenden. In diesem Szenario parsen wir Daten aus der Tabelle dbo.ImportedTime. Wir haben eine andere Anwendung genutzt, um Daten in diese Tabelle zu laden, und sie in einer früheren Übung betrachtet. Diesmal rufen wir Daten für alle Zeilen ab, nicht nur für diejenigen, die die Importanwendung als gültig markiert hat.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Ergänze den fehlenden Funktionsnamen TRY_XXX() innerhalb des Common Table Expression EventDates.
  • Wandle die Ereigniszeitpunkte EventDateOffset in 'UTC' um. Nenne diese Ausgabe EventDateUTC.
  • Wandle die Ereigniszeitpunkte EventDateOffset mit AT TIME ZONE in 'US Eastern Standard Time' um. Nenne diese Ausgabe EventDateUSEast.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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;
Code bearbeiten und ausführen