ПочатиПочніть безкоштовно

Перетворення імпортованих даних на дати з часовими поясами

Тепер, коли ми розглянули три безпечні щодо типів функції перетворення, можна почати застосовувати їх до реальних наборів даних. У цьому завданні ми розбиратимемо дані з таблиці dbo.ImportedTime. Іншу програму було використано для завантаження даних у цю таблицю, і ми вже переглядали їх у попередній вправі. Цього разу ми отримаємо дані для всіх рядків, а не лише для тих, які програма імпорту позначила як коректні.

Ця вправа є частиною курсу

Аналіз часових рядів у SQL Server

Переглянути курс

Інструкції до вправи

  • Заповніть пропущену назву функції TRY_XXX() всередині спільного виразу таблиці EventDates.
  • Перетворіть дати подій з EventDateOffset у 'UTC'. Назвіть цей стовпець EventDateUTC.
  • Перетворіть дати подій з EventDateOffset у 'US Eastern Standard Time' за допомогою AT TIME ZONE. Назвіть цей стовпець 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;
Редагувати та запускати код