Dalam banyak kesempatan, kami membutuhkan tanggal yang 'kurang lebih tepat', dan saya menggunakan tanggal seperti 2011-04-01
(tepat), serta 2011-04
(=April 2011) dan 2011
(tanggal hanya tahun) dalam metadata arsip. Seperti yang Anda sebutkan, bidang tanggal MySQL mentolerir '2011-00-00' meskipun tidak ada FAQ yang menceritakannya, dan itu baik-baik saja.
Tapi kemudian, saya harus menghubungkan MySQL database
melalui ODBC
dan bidang tanggal diterjemahkan dengan benar, kecuali tanggal 'ditoleransi' (Misalnya:'2011-04-00' hasil kosong dalam database ACCESS yang terhubung dengan MySQL-ODBC.
Untuk alasan itu, saya sampai pada kesimpulan bahwa bidang tanggal MySQL dapat dikonversi menjadi VARCHAR(10)
biasa field :Selama kita tidak memerlukan fungsi tanggal MySQL tertentu, itu berfungsi dengan baik, dan tentu saja, kita masih dapat menggunakan fungsi tanggal php dan fungsi date_php2mysql() Anda yang bagus.
Saya akan mengatakan bahwa satu-satunya kasus ketika bidang tanggal MySQL diperlukan adalah ketika seseorang membutuhkan kueri SQL yang kompleks, menggunakan MySQL
date berfungsi dalam kueri itu sendiri.(Tetapi kueri seperti itu tidak akan berfungsi lagi pada tanggal 'kurang lebih tepat'!...)
Kesimpulan :Untuk tanggal 'kurang lebih tepat', saat ini saya membuang kolom tanggal MySQL dan menggunakan VARCHAR(10)
biasa bidang dengan aaaa-mm-jj
data yang diformat. Sederhana itu indah.