Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyimpan Masa Tarikh dengan Maklumat Zon Waktu dalam MySQL untuk Mengelak Isu Penukaran Zon Waktu?

Bagaimanakah Saya Boleh Menyimpan Masa Tarikh dengan Maklumat Zon Waktu dalam MySQL untuk Mengelak Isu Penukaran Zon Waktu?

Barbara Streisand
Barbara Streisandasal
2024-12-19 15:02:11151semak imbas

How Can I Store Datetimes with Timezone Information in MySQL to Avoid Timezone Conversion Issues?

Menyimpan Tarikh Masa dengan Maklumat Zon Waktu dalam MySQL: Menangani Perbezaan Zon Waktu

Soalan:

Bagaimana bolehkah saya menyimpan tarikh masa dalam pangkalan data MySQL dengan maklumat zon waktu, memandangkan zon waktu pelayan berbeza daripada zon waktu zon waktu data yang disimpan?

Perbincangan:

Menyimpan tarikh masa dengan maklumat zon waktu adalah penting untuk mengekalkan cap masa yang tepat yang mencerminkan masa sebenar peristiwa berlaku, tanpa mengira lokasi atau zon waktu pelayan. Apabila berurusan dengan data daripada zon waktu yang berbeza, seperti dalam kes foto yang diambil di Tanzania dan disimpan pada pelayan di A.S., adalah penting untuk memastikan bahawa cap masa disimpan dalam zon waktu yang betul.

Jawapan:

Untuk menyimpan tarikh masa dengan maklumat zon waktu dalam MySQL dan mencegah isu penukaran zon waktu, ikuti ini langkah:

  1. Gunakan Jenis DATETIME: Tidak seperti TIMESTAMP, yang menyimpan cap masa dalam UTC, DATETIME mengekalkan cap masa dalam zon waktu yang ditentukan. Ini memastikan bahawa cap waktu Tanzania disimpan dalam waktu Tanzania, tanpa mengira zon waktu pelayan.
  2. Laraskan Kod Aplikasi Anda: Zon waktu data hendaklah ditetapkan secara eksplisit dalam kod aplikasi anda sebelum menyimpannya dalam pangkalan data. Contohnya, apabila memasukkan tarikh waktu Tanzania ke dalam lajur DATETIME, anda harus menukar cap waktu kepada masa Tanzania sebelum melaksanakan pernyataan INSERT.

Contoh:

INSERT INTO Images (TimestampJPG) VALUES (CONVERT_TZ('2011-03-13 02:49:10', '+00:00', '+03:00'));

Tambahan Pertimbangan:

  • Elakkan menggunakan masa sesi: Bergantung pada masa sesi boleh membawa kepada cap masa yang salah jika sesi tidak ditetapkan dengan betul.
  • Gunakan Perpustakaan Sokongan Zon Masa: Untuk pengendalian zon waktu yang kompleks, pertimbangkan untuk menggunakan perpustakaan PHP atau MySQL yang menyediakan zon waktu sokongan.
  • Pertimbangkan UTC untuk Pengedaran Global: Jika data yang disimpan akan diakses oleh pengguna dari pelbagai zon waktu, menyimpan cap masa dalam UTC dan menukarnya dengan cepat mungkin merupakan pilihan yang lebih baik untuk dipaparkan mereka dengan betul untuk setiap pengguna.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan Masa Tarikh dengan Maklumat Zon Waktu dalam MySQL untuk Mengelak Isu Penukaran Zon Waktu?. 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