Aan de slagGa gratis aan de slag

Geïmporteerde data omzetten naar datums met tijdzones

Nu we de drie typeveilige conversiefuncties hebben gezien, kunnen we ze gaan toepassen op echte gegevenssets. In dit scenario gaan we data parsen uit de tabel dbo.ImportedTime. We hebben een andere applicatie gebruikt om data in deze tabel te laden en die in een eerdere oefening bekeken. Deze keer halen we data op voor alle rijen, niet alleen voor de rijen die de importerende applicatie als geldig markeerde.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in SQL Server

Cursus bekijken

Oefeninstructies

  • Vul de ontbrekende TRY_XXX()-functienaam in binnen de EventDates common table expression.
  • Converteer de gebeurtenisdatums in EventDateOffset naar 'UTC'. Noem deze uitvoer EventDateUTC.
  • Converteer de gebeurtenisdatums in EventDateOffset naar 'US Eastern Standard Time' met AT TIME ZONE. Noem deze uitvoer EventDateUSEast.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren