Jangan. DateTime
nilai harus disimpan sebagai DateTime
, kecuali jika Anda memiliki alasan yang sangat bagus untuk menyimpannya sebaliknya (seperti untuk mendukung nilai tanggal dan waktu di luar nilai min/maks DateTime
), saya sarankan untuk membiarkannya dalam DateTime
kolom.
Anda selalu dapat memanipulasi bagaimana Anda mengembalikannya dari database selama Select
atau di lapisan presentasi. Untuk mengembalikan waktu unix dari DateTime
, MySql menyediakan metode bawaan yang disebut UNIX_TIMESTAMP
. Untuk mengembalikan jumlah milidetik, cukup kalikan dengan 1000, karena stempel waktu unix adalah jumlah detik sejak 1 Januari 1970 (tidak termasuk detik kabisat). Jika Anda ingin menyimpan waktu unix, Anda harus menggunakan tipe data int.
Harap dicatat bahwa jika Anda menyimpan waktu unix alih-alih menyimpan DateTime
yang sebenarnya nilai dalam DateTime
kolom tipe data, Anda akan kehilangan kemampuan untuk menggunakan semua fungsi basis data bawaan datetime dengan mudah. Misalnya, jika Anda ingin mengetahui berapa banyak baris yang termasuk dalam bulan tertentu, Anda harus terlebih dahulu menerjemahkan data dari int ke datetime, dan baru kemudian Anda dapat menghitungnya.
Anda juga akan kehilangan akurasi (karena waktu unix tidak akurat bahkan pada resolusi 1 detik, karena mengabaikan detik kabisat).
Jadi, untuk menyimpulkan - Ketika database menawarkan tipe data yang sesuai dengan data, jangan menyimpan data itu menggunakan tipe data yang berbeda. gunakan Date
tipe data jika Anda hanya ingin menyimpan tanggal, DateTime
tipe data jika Anda ingin menyimpan nilai datetime, dan Time
tipe data jika Anda ingin menyimpan waktu tertentu dalam sehari.
P.S.
Saat berurusan dengan nilai waktu tanggal, Terutama jika Anda harus berurusan dengan klien dari beberapa lokasi, SELALU simpan hanya waktu tanggal UTC di database Anda, kecuali, tentu saja, Anda ingin menjadi gila.