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
Anleitung zur Übung
- Ergänze den fehlenden Funktionsnamen
TRY_XXX()innerhalb des Common Table ExpressionEventDates. - Wandle die Ereigniszeitpunkte
EventDateOffsetin'UTC'um. Nenne diese AusgabeEventDateUTC. - Wandle die Ereigniszeitpunkte
EventDateOffsetmitAT TIME ZONEin'US Eastern Standard Time'um. Nenne diese AusgabeEventDateUSEast.
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;