Chuyển đổi dữ liệu nhập vào thành ngày giờ kèm múi giờ
Giờ bạn đã thấy ba hàm chuyển đổi an toàn kiểu dữ liệu, hãy bắt đầu áp dụng chúng vào dữ liệu thực tế. Ở bài này, bạn sẽ phân tích dữ liệu từ bảng dbo.ImportedTime. Chúng ta đã dùng một ứng dụng khác để nạp dữ liệu vào bảng này và đã xem nó trong một bài trước. Lần này, chúng ta sẽ truy xuất dữ liệu cho tất cả các hàng, không chỉ những hàng được ứng dụng nhập liệu đánh dấu là hợp lệ.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian trong SQL Server
Hướng dẫn bài tập
- Điền tên hàm
TRY_XXX()còn thiếu trong common table expressionEventDates. - Chuyển các ngày giờ sự kiện trong
EventDateOffsetsang'UTC'. Đặt tên cột đầu ra làEventDateUTC. - Chuyển các ngày giờ sự kiện trong
EventDateOffsetsang'US Eastern Standard Time'bằngAT TIME ZONE. Đặt tên cột đầu ra làEventDateUSEast.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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;