가져온 데이터를 시간대가 포함된 날짜로 변환하기
이제 세 가지 타입 안전 변환 함수를 살펴봤으니, 실제 데이터셋에 적용해 보겠습니다. 이번 시나리오에서는 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;