Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menyimpan tanggal masa depan (!) dalam database

Pertama, saya telah menulis tentang ini secara detail sebelumnya, jadi silakan baca jawaban saya di sini dan di sini , serta entri blog ini oleh Lau Taarnskov .

Khusus untuk MySQL, Anda biasanya tidak ingin menggunakan TIMESTAMP untuk waktu lokal dari acara mendatang, karena akan mengonversi dari zona waktu sesi ke UTC pada waktu tulis, dan mengonversi kembali dari UTC ke zona waktu sesi pada waktu baca. Meskipun ini adalah id zona waktu yang sama (yang tidak harus demikian), tidak ada jaminan bahwa data zona waktu tidak akan berubah untuk satu atau kedua zona waktu antara saat Anda menulis data dan saat peristiwa terjadi.

Sebagai gantinya, gunakan DATETIME bidang, yang tidak melakukan konversi zona waktu implisit. Anda mendapatkan nilai persis yang Anda tulis. Simpan waktu lokal acara, dan simpan VARCHAR bidang yang berisi pengidentifikasi zona waktu untuk acara tersebut. Ini adalah satu-satunya cara untuk mempertahankan niat asli pengguna.

Alasan dan kasus tepi semuanya dijelaskan dalam jawaban yang saya berikan sebelumnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL untuk mencari bidang dengan string JSON

  2. Cara menambahkan poin ke LINESTRING SQL

  3. mysql - Membuat performa baris vs. kolom

  4. Bisakah bidang tabel berisi tanda hubung?

  5. Bagaimana cara menggunakan koneksi MySQL yang sama untuk seluruh aplikasi Node.js saya?