ÎncepețiÎncepe gratuit

Convertește datele importate în date cu fus orar

Acum că am văzut cele trei funcții de conversie sigure la nivel de tip, putem începe să le aplicăm pe seturi de date reale. În acest scenariu, vom analiza datele din tabelul dbo.ImportedTime. Am folosit o altă aplicație pentru a încărca datele din acest tabel și le-am examinat într-un exercițiu anterior. De data aceasta, vom extrage date pentru toate rândurile, nu doar pentru cele marcate ca valide de aplicația de import.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează numele funcției TRY_XXX() lipsă din expresia de tip tabel comun EventDates.
  • Convertește datele evenimentului EventDateOffset la 'UTC'. Numește această coloană EventDateUTC.
  • Convertește datele evenimentului EventDateOffset la 'US Eastern Standard Time' folosind AT TIME ZONE. Numește această coloană EventDateUSEast.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul