Konversi data impor ke tanggal dengan zona waktu
Sekarang setelah kita melihat tiga fungsi konversi yang type-safe, kita dapat mulai menerapkannya pada himpunan data nyata. Dalam skenario ini, kita akan mengurai data dari tabel dbo.ImportedTime. Kita menggunakan aplikasi lain untuk memuat data ke tabel ini dan telah meninjaunya di latihan sebelumnya. Kali ini, kita akan mengambil data untuk semua baris, bukan hanya yang ditandai valid oleh aplikasi impor.
Latihan ini merupakan bagian dari kursus
Analisis Deret Waktu di SQL Server
Instruksi latihan
- Lengkapi nama fungsi
TRY_XXX()yang hilang di dalam common table expressionEventDates. - Konversi tanggal kejadian
EventDateOffsetke'UTC'. Beri nama keluaran iniEventDateUTC. - Konversi tanggal kejadian
EventDateOffsetke'US Eastern Standard Time'menggunakanAT TIME ZONE. Beri nama keluaran iniEventDateUSEast.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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;