Rumah  >  Artikel  >  pangkalan data  >  Adakah Fungsi CONVERT_TZ() MySQL Mengendalikan Masa Penjimatan Siang dan Bagaimana Saya Boleh Menyelesaikan Masalah Zon Masa?

Adakah Fungsi CONVERT_TZ() MySQL Mengendalikan Masa Penjimatan Siang dan Bagaimana Saya Boleh Menyelesaikan Masalah Zon Masa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 20:07:02820semak imbas

Does MySQL's CONVERT_TZ() Function Handle Daylight Saving Time, and How Can I Troubleshoot Time Zone Issues?

MySQL CONVERT_TZ() dengan Pertimbangan Waktu Penjimatan Siang

Soalan 1:

Ya, pemahaman anda betul. CONVERT_TZ() mengambil kira masa penjimatan siang apabila menentukan nama zon waktu. Contohnya, CONVERT_TZ('00:00:00', 'UTC', 'AS/EASTERN') sememangnya akan mengembalikan '19:00:00' pada 1 Januari dan '20:00:00' pada 1 Julai.

Soalan 2:

Tidak, anda tidak perlu sentiasa mengemas kini jadual zon waktu MySQL untuk memastikan zon waktu mengimbangi UTC dikemas kini. MySQL mengemas kini jadual secara automatik apabila peraturan zon waktu berubah.

Soalan 3:

Hasil SELECT CONVERT_TZ('2004-01-01 12:00:00' ,'GMT','MET') yang menghasilkan "NULL" boleh menunjukkan bahawa jadual zon waktu tidak disediakan dengan betul.

Untuk menyemak ini, anda boleh menjalankan pertanyaan berikut:

SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');

Jika hasilnya bukan NULL, maka jadual zon waktu disediakan dengan betul.

Pengiraan Offset Zon Waktu Alternatif:

Jika anda tidak mempunyai masa jadual zon ditetapkan, anda masih boleh mengira pengimbangan zon waktu menggunakan pertanyaan berikut:

select utc_timezone() - interval user_timezone_offset_in_hours hour
from userinfo a
where user_id = 999;

Walau bagaimanapun, pendekatan ini memerlukan anda mengemas kini secara manual ofset zon waktu pengguna.

Mendapatkan Zon Masa melalui JavaScript:

Untuk aplikasi web, anda boleh mendapatkan zon waktu pengguna melalui JavaScript. Pautan berikut memberikan contoh cara untuk melakukan ini:

[Pengesanan Zon Waktu JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl .DateTimeFormat)

Menggunakan INTERVAL untuk Pengiraan Masa:

Kata kunci INTERVAL membolehkan penambahan dan penolakan nilai masa dengan mudah. Sebagai contoh, pertanyaan berikut menolak 1 hari, 4 jam dan 8 minit daripada masa semasa:

select now() a, now() - interval 1 day + interval 4 hour + interval 8 minute b;

Atas ialah kandungan terperinci Adakah Fungsi CONVERT_TZ() MySQL Mengendalikan Masa Penjimatan Siang dan Bagaimana Saya Boleh Menyelesaikan Masalah Zon Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn