Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Mengendalikan Masa Penjimatan Siang dengan Medan `DATETIME` MySQL?
Medan Masa Tarikh MySQL dan Masa Penjimatan Siang: Mengendalikan Jam "Tambahan"
Perbincangan ini menangani cabaran yang dihadapi apabila berurusan dengan medan waktu tarikh MySQL dalam konteks masa penjimatan siang (DST). Kekaburan yang timbul semasa tempoh peralihan boleh menyebabkan kekeliruan dan penyimpanan data yang salah.
Masalahnya
Semasa peralihan DST, satu jam "diperoleh" atau " hilang." Titik peralihan ini mencipta dua kejadian pada masa yang sama, seperti 01:30:00 berlaku sekali dengan offset -04:00 dan sekali lagi dengan offset -05:00. Kekaburan ini menjadikannya tidak jelas contoh 01:30:00 yang sedang dirujuk.
Penghadan Medan Tarikh dan Cap Masa
Bertentangan dengan andaian sebelumnya, medan DATETIME dan TIMESTAMP jenis berkelakuan berbeza dengan kehadiran DST. Walaupun medan TIMESTAMP menukar data kepada UTC sebelum penyimpanan, medan DATETIME menyimpan data secara langsung tanpa penukaran. Walau bagaimanapun, kedua-dua jenis medan tidak boleh menyimpan data dengan tepat dalam zon waktu yang terjejas oleh DST.
Penyelesaian
Untuk mengatasi had ini, adalah perlu untuk menyimpan data dalam bukan- Zon waktu DST, seperti UTC. Ini boleh dicapai dengan menukar data daripada zon waktu sistem kepada UTC sebelum menyimpannya ke medan DATETIME.
Pertimbangan Tambahan
Dengan melaksanakan strategi ini, adalah mungkin untuk mengendalikan data masa tarikh dengan tepat dalam MySQL walaupun dengan adanya masa penjimatan siang hari.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Masa Penjimatan Siang dengan Medan `DATETIME` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!