แชร์ผ่าน


ฟังก์ชัน 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 ก่อนที่ค่านี้จะสามารถแสดงบนหน้าแอพลิเคชันได้ จะต้องแปลง การแปลงจะพิจารณาโซนเวลาที่ ตั้งค่า เป็นโซนที่ต้องการของผู้ใช้แอพลิเคชันที่ลงชื่อเข้าใช้ในปัจจุบัน

ทรัพยากรเพิ่มเติม

ฟังก์ชันวันที่และเวลา