BaşlayınÜcretsiz başlayın

İçe aktarılan verileri saat dilimleriyle tarihlere dönüştür

Artık üç tür güvenli dönüştürme işlevini gördüğümüze göre, bunları gerçek veri kümeleri üzerinde uygulamaya başlayabiliriz. Bu senaryoda, dbo.ImportedTime tablosundan verileri ayrıştıracağız. Bu tabloya verileri yüklemek için farklı bir uygulama kullandık ve bunu önceki bir egzersizde incelemiştik. Bu kez, yalnızca içe aktarma uygulamasının geçerli olarak işaretledikleri değil, tüm satırlar için veri getireceğiz.

Bu egzersiz, kursun bir parçasıdır

SQL Server'da Zaman Serisi Analizi

Kursa Göz Atın

Egzersiz talimatları

  • EventDates ortak tablo ifadesi içinde eksik olan TRY_XXX() işlev adını doldur.
  • EventDateOffset olay tarihlerini 'UTC''ye dönüştür. Bu çıktıyı EventDateUTC olarak adlandır.
  • AT TIME ZONE kullanarak EventDateOffset olay tarihlerini 'US Eastern Standard Time' saat dilimine dönüştür. Bu çıktıyı EventDateUSEast olarak adlandır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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;
Kodu Düzenle ve Çalıştır