Rumah > Artikel > pangkalan data > Adakah Fungsi CONVERT_TZ() MySQL Mengendalikan Masa Penjimatan Siang dan Bagaimana Saya Boleh Menyelesaikan Masalah Zon Masa?
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!