始める無料で始める

タイムゾーン付きの日付にインポートデータを変換する

これで型安全な3つの変換関数を確認できたので、実データセットに適用していきます。この演習では、dbo.ImportedTime テーブルのデータをパースします。別のアプリケーションでこのテーブルにデータをロードし、前の演習で確認しました。今回は、インポート用アプリケーションで有効とマークされた行だけでなく、すべての行のデータを取得します。

この演習はコースの一部です

SQL Serverで学ぶ時系列分析

コースを見る

演習の手順

  • EventDates 共通テーブル式内の、欠けている TRY_XXX() 関数名を補完してください。
  • EventDateOffset のイベント日時を 'UTC' に変換し、出力名を EventDateUTC としてください。
  • AT TIME ZONE を使って、EventDateOffset のイベント日時を 'US Eastern Standard Time' に変換し、出力名を EventDateUSEast としてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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;
コードを編集して実行