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
Oefeninstructies
- Vul de ontbrekende
TRY_XXX()-functienaam in binnen deEventDatescommon table expression. - Converteer de gebeurtenisdatums in
EventDateOffsetnaar'UTC'. Noem deze uitvoerEventDateUTC. - Converteer de gebeurtenisdatums in
EventDateOffsetnaar'US Eastern Standard Time'metAT TIME ZONE. Noem deze uitvoerEventDateUSEast.
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;