เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สร้างวันที่และเวลาพร้อม offset จากส่วนประกอบย่อย

ฟังก์ชัน DATETIMEOFFSETFROMPARTS() ใช้สร้างค่า DATETIMEOFFSET จากส่วนประกอบย่อย โดยรับพารามิเตอร์มากที่สุดในบรรดาฟังก์ชันสร้างวันที่และเวลาทั้งหมด

ในวันที่ 19 มกราคม 2038 เวลา 03:14:08 UTC เราจะเผชิญกับปัญหา Year 2038 (หรือ Y2.038K) ซึ่งเป็นช่วงเวลาที่อุปกรณ์ 32 บิตจะรีเซ็ตกลับไปยังวันที่ 1900-01-01 ปัญหานี้มีความเสี่ยงที่จะทำให้อุปกรณ์ 32 บิตทุกตัวที่ใช้ POSIX time หยุดทำงาน ซึ่ง POSIX time คือจำนวนวินาทีที่นับตั้งแต่วันที่ 1 มกราคม 1970 เวลาเที่ยงคืน UTC

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาใน SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างค่า DATETIMEOFFSET ที่แทนมิลลิวินาทีสุดท้ายก่อนที่ปัญหา Y2.038K จะเกิดขึ้น โดยให้ offset เป็น UTC
  • สร้างค่า DATETIMEOFFSET ที่แทนช่วงเวลาที่อุปกรณ์ประสบปัญหา Y2.038K ตามเวลา UTC จากนั้นใช้ตัวดำเนินการ AT TIME ZONE เพื่อแปลงเป็น Eastern Standard Time

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT
	-- Fill in the millisecond PRIOR TO chaos
	DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 07, 999, 0, 0, 3) AS LastMoment,
    -- Fill in the date and time when we will experience the Y2.038K problem
    -- Then convert to the Eastern Standard Time time zone
	DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 08, 0, 0, 0, 3) AT TIME ZONE '___ ___ ___' AS TimeForChaos;
แก้ไขและรันโค้ด