การเปลี่ยน offset ของวันที่
ใช้ฟังก์ชัน SWITCHOFFSET() เพื่อเปลี่ยนเขตเวลาของวันที่ชนิด DATETIME, DATETIME2 หรือ DATETIMEOFFSET หรือสตริงวันที่ที่ถูกต้อง โดย SWITCHOFFSET() รับพารามิเตอร์ 2 ตัว ได้แก่ วันที่หรือสตริงที่ต้องการ และ offset ของเขตเวลา จากนั้นจะคืนค่าเวลาในเขตเวลาใหม่นั้น เช่น 3:00 น. Eastern Daylight Time จะกลายเป็น 2:00 น. Central Daylight Time
พิธีเปิดโอลิมปิกฤดูร้อน 2016 ที่ริโอเดอจาเนโรเริ่มต้นเมื่อเวลา 23:00 น. UTC วันที่ 8 สิงหาคม 2016 โดยเริ่มจากสตริงที่บรรจุวันที่และเวลาดังกล่าว เพื่อดูว่าเวลานั้นตรงกับช่วงใดในสถานที่อื่น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
คำแนะนำการฝึกหัด
- ระบุการเรียกใช้ฟังก์ชันที่เหมาะสมสำหรับ Brasilia ประเทศบราซิล
- ระบุการเรียกใช้ฟังก์ชันและเขตเวลาที่เหมาะสมสำหรับชิคาโก รัฐอิลลินอยส์ ในเดือนสิงหาคม ชิคาโกช้ากว่า Brasilia Standard Time อยู่ 2 ชั่วโมง
- ระบุการเรียกใช้ฟังก์ชันและเขตเวลาที่เหมาะสมสำหรับนิวเดลี ประเทศอินเดีย อินเดียไม่มีการปรับเวลาตามฤดูกาล ดังนั้นในเดือนสิงหาคม นิวเดลีจึงเร็วกว่า Brasilia Standard Time อยู่ 8 ชั่วโมงครึ่ง โปรดระวังว่า Brasilia และนิวเดลีอยู่คนละฝั่งของ UTC เมื่อคำนวณเขตเวลา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
DECLARE
@OlympicsUTC NVARCHAR(50) = N'2016-08-08 23:00:00';
SELECT
-- Fill in the time zone for Brasilia, Brazil
___(@OlympicsUTC, '-03:00') AS BrasiliaTime,
-- Fill in the time zone for Chicago, Illinois
___(@OlympicsUTC, ___) AS ChicagoTime,
-- Fill in the time zone for New Delhi, India
___(@OlympicsUTC, '+___') AS NewDelhiTime;