การแปลงเป็น Date Offset
นอกจาก SWITCHOFFSET() แล้ว ยังสามารถใช้ TODATETIMEOFFSET() เพื่อแปลงวันที่ที่มีอยู่ให้เป็นประเภทวันที่ที่มีออฟเซ็ตได้ด้วย หากเวลาเริ่มต้นอยู่ในรูปแบบ UTC จะต้องปรับค่าเขตเวลาก่อน แล้วจึงเพิ่มออฟเซ็ตต่อท้าย โดยการปรับเขตเวลานั้นทำได้โดยบวกหรือลบชั่วโมง (และนาที) ด้วยตนเอง
พิธีปิดการแข่งขันกีฬาโอลิมปิกฤดูร้อน 2016 ที่ริโอเดจาเนโรเริ่มต้นเวลา 23:00 น. UTC ในวันที่ 21 สิงหาคม 2016 โดยเริ่มต้นจากสตริงที่บรรจุวันที่และเวลาดังกล่าว เราสามารถดูได้ว่าขณะนั้นเป็นเวลาใดในสถานที่อื่น สำหรับเวลาในเมืองฟีนิกซ์ รัฐแอริโซนา ที่นั่นใช้ Mountain Standard Time ซึ่งคือ UTC -7 ตลอดทั้งปี ส่วนหมู่เกาะตูวาลูมีเขตเวลาของตัวเองซึ่งอยู่ล่วงหน้า UTC อยู่ 12 ชั่วโมง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
คำแนะนำการฝึกหัด
- ป้อนเวลาในเมืองฟีนิกซ์ รัฐแอริโซนา ซึ่งใช้ Mountain Standard Time คือ UTC -07:00
- ป้อนเวลาสำหรับตูวาลู ซึ่งอยู่ล่วงหน้า UTC อยู่ 12 ชั่วโมง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
DECLARE
@OlympicsClosingUTC DATETIME2(0) = '2016-08-21 23:00:00';
SELECT
-- Fill in 7 hours back and a '-07:00' offset
___(DATEADD(HOUR, -___, @OlympicsClosingUTC), '___') AS PhoenixTime,
-- Fill in 12 hours forward and a '+12:00' offset.
___(DATEADD(HOUR, ___, @OlympicsClosingUTC), '___') AS TuvaluTime;