Začněte nyníZačněte zdarma

Převod importovaných dat na data s časovými pásmy

Teď, když jsme si prošli tři typově bezpečné funkce pro převod, můžeme je začít používat na skutečných datech. V tomto scénáři budeme zpracovávat data z tabulky dbo.ImportedTime. Tuto tabulku jsme naplnili pomocí jiné aplikace a prohlédli jsme si ji v předchozím cvičení. Tentokrát načteme data ze všech řádků, nejen z těch, které importovací aplikace označila jako platné.

Toto cvičení je součástí kurzu

Time Series Analysis in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Doplň chybějící název funkce TRY_XXX() do společného tabulkového výrazu EventDates.
  • Převeď data událostí EventDateOffset do časového pásma 'UTC'. Výstup pojmenuj EventDateUTC.
  • Převeď data událostí EventDateOffset do časového pásma 'US Eastern Standard Time' pomocí AT TIME ZONE. Výstup pojmenuj EventDateUSEast.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód