Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Điền tên hàm TRY_XXX() còn thiếu trong common table expression EventDates.
  • Chuyển các ngày giờ sự kiện trong EventDateOffset sang 'UTC'. Đặt tên cột đầu ra là EventDateUTC.
  • Chuyển các ngày giờ sự kiện trong EventDateOffset sang 'US Eastern Standard Time' bằng AT 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;
Chỉnh sửa và Chạy Mã