ฟังก์ชัน CHANGETIMEZONE ER
ฟังก์ชัน CHANGETIMEZONE
ส่งคืนค่า DateTime ในเวลาสากล (เวลามาตรฐานกรีนิช [GMT]) ที่ถูกแปลงจากค่า วันที่/เวลา ที่กำหนดให้ในหนึ่งโซนเวลา เป็นค่าวันที่/เวลาในอีกโซนเวลา
ไวยากรณ์
CHANGETIMEZONE (datetime, base time zone, target time zone)
อาร์กิวเมนต์
datetime
: DateTime
ค่าวันที่/เวลาในโซนเวลา Coordinated Universal Time ที่แสดงถึงค่าวันที่/เวลาที่จะแปลง
base time zone
: สตริง
ชื่อของโซนเวลาที่ค่าวันที่/เวลาที่ระบุ ถูกเลื่อนเป็นก่อนการแปลง
target time zone
: สตริง
ชื่อของโซนเวลาที่ค่าวันที่/เวลาที่แปลงถูกเลื่อนระหว่างการแปลง
ค่าที่ส่งคืน
วันที่และเวลา
ค่าวันที่/เวลาผลลัพธ์ในโซนเวลามาตรฐานสากล
บันทึกย่อการใช้งาน
เมื่อต้องการระบุโซนเวลาต้นทางและเป้าหมาย คุณสามารถใช้ชื่อโซนเวลาที่ มีให้ โดย Internet Assigned Numbers Authority (IANA) หรือที่ได้รับ การสนับสนุน โดย Microsoft Windows
เมื่อรันไทม์ ข้อยกเว้น "โซนเวลา '<time zone name>' ไม่มีอยู่" ถ้าไม่พบชื่อที่ระบุในรายการ IANA หรือในรีจิสทรี Windows
สำหรับโซนเวลาที่มีการปรับเวลาตามฤดูกาล การแปลงจะพิจารณา Coordinated Universal Time ออฟเซ็ตการปรับเวลาตามฤดูกาล ข้อมูลที่พร้อมใช้งานล่าสุดเกี่ยวกับออฟเซ็ตนี้จะใช้ในระหว่างการแปลง
ตัวอย่างที่ 1
ในตัวอย่างนี้ มีการใช้ชื่อโซนเวลาของ Windows
คุณกำหนดค่าแหล่งข้อมูล DSX ของชนิดของ ฟิลด์ที่คำนวณได้ ซึ่งประกอบด้วยนิพจน์ต่อไปนี้
CONCATENATE(
DATETIMEFORMAT( DSY, "O"),
" -> ",
DATETIMEFORMAT( CHANGETIMEZONE(DSY, "E. Europe Standard Time", "Hawaiian Standard Time"), "O")
)
ถ้าคุณตั้งค่าคอนฟิกนิพจน์ของแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เป็น DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN")
แหล่งข้อมูล DSX จะส่งคืนข้อความ 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00 ข้อความนี้แสดงว่าความแตกต่างของเวลาระหว่างโซนเวลาสองโซน ที่ให้ไว้ในวันที่ 1 มิถุนายน มากกว่า 24 ชั่วโมง ดังนั้น ค่าวันที่/เวลาที่แปลงแล้วคือก่อนหน้าค่าวันที่/เวลาที่ระบุหนึ่งวัน เนื่องจากโซนเวลาพื้นฐานอยู่ก่อนโซนเวลาเป้าหมาย
ถ้าคุณตั้งค่าคอนฟิกนิพจน์ของแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เป็น DATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN")
แหล่งข้อมูล DSX จะส่งคืนข้อความ 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00 ข้อความนี้แสดงว่าความแตกต่างของเวลาระหว่างโซนเวลาสองโซน ที่ให้ไว้ในวันที่ 1 ธันวาคม น้อยกว่า 24 ชั่วโมง ดังนั้น ค่าวันที่/เวลาที่แปลงจะเท่ากับค่าวันที่/เวลาที่ระบุ
หมายเหตุ
นิพจน์เดียวกันจะส่งคืนผลต่างที่แตกต่างกันระหว่างค่าวันที่/เวลาที่ให้ไว้ และที่แปลงค่าไว้ของโซนเวลาคู่เดียวกัน เนื่องจากออฟเซ็ตเวลาการปรับเวลาตามฤดูกาลที่ประสานงานแตกต่างจากเขตเวลาที่ระบุในวันที่/เวลาที่ระบุ
ตัวอย่างที่ 2
ในตัวอย่างนี้ มีการใช้ชื่อโซนเวลาของ IANA
คุณกำหนดค่าแหล่งข้อมูล DSX ของชนิดของ ฟิลด์ที่คำนวณได้ ซึ่งประกอบด้วยนิพจน์ต่อไปนี้
CONCATENATE(
DATETIMEFORMAT( DSY, "O"),
" -> ",
DATETIMEFORMAT( CHANGETIMEZONE(DSY, "Europe/Athens", "US/Hawaii"), "O")
)
ถ้าคุณตั้งค่าคอนฟิกนิพจน์ของแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เป็น DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN")
แหล่งข้อมูล DSX จะส่งคืนข้อความ 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00 ข้อความนี้แสดงว่าความแตกต่างของเวลาระหว่างโซนเวลาสองโซน ที่ให้ไว้ในวันที่ 1 มิถุนายน มากกว่า 24 ชั่วโมง ดังนั้น ค่าวันที่/เวลาที่แปลงแล้วคือก่อนหน้าค่าวันที่/เวลาที่ระบุหนึ่งวัน เนื่องจากโซนเวลาพื้นฐานอยู่ก่อนโซนเวลาเป้าหมาย
ถ้าคุณตั้งค่าคอนฟิกนิพจน์ของแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เป็น DATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN")
แหล่งข้อมูล DSX จะส่งคืนข้อความ 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00 ข้อความนี้แสดงว่าความแตกต่างของเวลาระหว่างโซนเวลาสองโซน ที่ให้ไว้ในวันที่ 1 ธันวาคม น้อยกว่า 24 ชั่วโมง ดังนั้น ค่าวันที่/เวลาที่แปลงจะเท่ากับค่าวันที่/เวลาที่ระบุ
ตัวอย่างที่ 3
คุณกำหนดค่าแหล่งข้อมูล DSX ของชนิดของ ฟิลด์ที่คำนวณได้ ซึ่งประกอบด้วยนิพจน์ต่อไปนี้
CONCATENATE(
DATETIMEFORMAT( DSY, "O"),
" -> ",
DATETIMEFORMAT( CHANGETIMEZONE(DSY, "US/Hawaii", "Europe/Athens"), "O")
)
ถ้าคุณตั้งค่าคอนฟิกนิพจน์ของแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เป็น DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN")
แหล่งข้อมูล DSX จะส่งคืนข้อความ 2021-06-01T12:55:00.0000000+00:00 -> 2021-06-02T01:55:00.0000000+00:00' ข้อความนี้แสดงว่าความแตกต่างของเวลาระหว่างโซนเวลาสองโซน ที่ให้ไว้ในวันที่ 1 มิถุนายน มากกว่า 24 ชั่วโมง ดังนั้น ค่าวันที่/เวลาที่แปลงแล้วคือหลังค่าวันที่/เวลาที่ระบุหนึ่งวัน เนื่องจากโซนเวลาเป้าหมายอยู่ก่อนโซนเวลาพื้นฐาน
ตัวอย่างที่ 4
คุณอาจได้รับการลงวันที่/เวลาจากแหล่งข้อมูลภายนอก เป็นข้อความที่ไม่มีข้อมูลโซนเวลา อย่างไรก็ตาม คุณอาจทราบโซนเวลาที่แหล่งข้อมูลดําเนินงานอยู่ ตัวอย่างเช่น คุณได้รับการลงวันที่/เวลา 01/12/2021 12:55:00 จากบริการที่ดําเนินการในประเทศสเปน เมื่อต้องการบันทึกค่าวันที่/เวลานี้ลงในฐานข้อมูลอย่างถูกต้อง ให้แปลงดังต่อไปนี้:
ตั้งค่าคอนฟิกแหล่งข้อมูล DSY ของชนิด ฟิลด์ที่คํานวณได้ เพื่อแปลงการลงวันที่/เวลาจากข้อความ เป็นค่าวันที่/เวลาของ Coordinated Universal Time
DATETIMEVALUE ("01/12/2021 12:55:00", "dd/MM/yyyy HH:mm:ss", "ES")
ตั้งค่าคอนฟิกแหล่งข้อมูล DSX ของชนิด ฟิลด์ที่คํานวณได้ เพื่อเลื่อนค่าวันที่/เวลาที่แปลงไปเป็น Coordinated Universal Time เป็นค่าวันที่/เวลาของโซนเวลาของแหล่งข้อมูลภายนอก
CHANGETIMEZONE(DSY, "Romance Standard Time", "GMT Standard Time")
หมายเหตุ
เมื่อคุณใช้ฟังก์ชัน CHANGETIMEZONE
ในการแปลงวันที่/เวลา โปรดทราบว่าค่าวันที่/เวลาใดๆ จะจัดเก็บอยู่ในฐานข้อมูล เป็นค่าในโซนเวลา Coordinated Universal Time ก่อนที่ค่านี้จะสามารถแสดงบนหน้าแอพลิเคชันได้ จะต้องแปลง การแปลงจะพิจารณาโซนเวลาที่ ตั้งค่า เป็นโซนที่ต้องการของผู้ใช้แอพลิเคชันที่ลงชื่อเข้าใช้ในปัจจุบัน