MySQL แปลงจากโซนเวลาหนึ่งไปอีกโซนหนึ่ง

Mysql Paelng Cak Son Wela Hnung Pi Xik Son Hnung



“เขตเวลาเป็นหนึ่งในแนวคิดที่ซับซ้อนที่นักพัฒนาซอฟต์แวร์ต้องรับมือ แม้ว่าเครื่องมือและการใช้งานในฐานข้อมูลเชิงสัมพันธ์จะมุ่งเป้าไปที่การทำให้ใช้งานได้ แต่ก็สามารถพิสูจน์ได้ว่าท้าทายและบางครั้งก็นำไปสู่ข้อผิดพลาด

อย่างไรก็ตาม ในบทความนี้ เราจะพูดถึงวิธีการแปลงเวลาจากเขตเวลาหนึ่งเป็นเขตเวลาอื่นโดยใช้ MySQL”







MySQL Convert_Tz() ฟังก์ชั่น

ฟังก์ชัน convert_tz() ใน MySQL ช่วยให้เราสามารถแปลงจากเขตเวลาหนึ่งเป็นอีกเขตหนึ่งได้ ไวยากรณ์ของฟังก์ชันเป็นดังที่แสดง:



CONVERT_TZ ( dt,from_tz,to_tz )


ฟังก์ชันนี้ใช้ค่าวันที่และเวลาที่จะแปลง เขตเวลาที่คุณต้องการแปลง และแปลงที่คุณต้องการแปลง



MySQL อนุญาตให้คุณระบุเขตเวลาเป็นชื่อหรือค่าออฟเซ็ต ฟังก์ชันจะส่งคืนออบเจ็กต์ Datetime ที่เลือกในเขตเวลาเป้าหมาย





ตัวอย่าง 1

ด้านล่างนี้คือตัวอย่างที่แสดงวิธีการแปลงสตริงเวลาจาก EST เป็น EAT โดยใช้การชดเชยเขตเวลา

เลือก
Convert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) เช่น เวลา1;



ตัวอย่างแบบสอบถามด้านบนควรส่งคืนผลลัพธ์:



| เวลา1 |
| -------------------- |
| 2022 -08-09 01: 22 : 22 |

ตัวอย่าง 2

ดังที่ได้กล่าวมาแล้ว เราสามารถระบุเขตเวลาเป้าหมายตามชื่อได้ อย่างไรก็ตาม คุณต้องดาวน์โหลดและติดตั้ง MySQL Timezones

คุณสามารถเรียกใช้คำสั่งด้านล่างเพื่อโหลดเขตเวลา

$ mysql_tzinfo_to_sql / usr / แบ่งปัน / โซนอินโฟ | mysql -ใน ราก -p mysql


หากคุณกำลังใช้ไฟล์เขตเวลา ให้รันคำสั่ง:

mysql_tzinfo_to_sql tz_file tz_name | mysql -ใน ราก -p mysql


ดาวน์โหลดไฟล์เขตเวลาในแหล่งข้อมูลด้านล่าง:

https: // dev.mysql.com / ดาวน์โหลด / timezones.html


โหลดไฟล์:

mysql -ใน ราก -p mysql < ชื่อไฟล์


จากนั้นคุณสามารถระบุเขตเวลาเป้าหมายด้วยชื่อ:

mysql > เลือก CONVERT_TZ ( '2022-10-10 14:34:00 น.' , 'สหรัฐฯ/ตะวันออก' , 'สหรัฐฯ/ภาคกลาง' ) เช่น เวลา ;


ข้อความค้นหาด้านบนควรส่งคืนเวลาที่แปลงเป็นเขตเวลาเป้าหมายเป็น:

+---------------------+
| เวลา |
+---------------------+
| 2022 - 10 - 10 13 : 3. 4 00 |
+---------------------+
1 แถว ใน ชุด ( 0.00 วินาที )

จบ

ในโพสต์สั้นๆ นี้ เราได้พูดถึงวิธีใช้ฟังก์ชัน convert_tz ใน MySQL เพื่อแปลงเวลาจากเขตเวลาหนึ่งไปยังอีกเขตหนึ่ง

มีความสุขในการเข้ารหัส!!