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

Bagaimana cara terbaik untuk menyimpan tanggal/waktu di MySql?

  1. Biasanya, Anda tidak boleh melakukan keduanya:tipe data di lapisan database harus bermakna (mungkin) sendiri dan tidak bergantung pada aplikasi Anda untuk menafsirkannya. Seperti @Jim DeLaHunt mengatakan , ini memungkinkan database untuk dengan mudah memanipulasi/menafsirkannya dari SQL seperti yang diperlukan (dan juga memungkinkan Anda untuk dengan mudah mengakses data yang sama dari basis kode aplikasi lain di masa mendatang).

    MySQL memiliki lima jenis temporal , hanya dua yang menyimpan tanggal dan waktu:DATETIME dan TIMESTAMP .

    Seperti yang telah disinggung orang lain, perbedaannya terletak pada apakah Anda ingin menyimpan zona waktu - meskipun menurut saya cara melihatnya cukup membingungkan:

    • TIMESTAMP menggunakan sesi time_zone variabel untuk mengubah input menjadi stempel waktu UTC dan kemudian kembali lagi untuk output:ini berguna untuk menentukan waktu yang tepat;

    • DATETIME hanya menyimpan tanggal dan waktu tanpa memperhatikan zona waktu, seperti mengambil foto kalender dan jam:ini berguna untuk menentukan peristiwa yang terjadi pada waktu lokal yang sama secara global.

  2. Sama seperti Anda akan mendeklarasikan kolom lainnya, Anda menentukan tipe data yang relevan setelah nama kolom.

    Hati-hati dengan TIMESTAMP memiliki fitur tambahan, seperti pembaruan otomatis , yang mungkin ingin Anda nonaktifkan dalam deklarasi kolom Anda jika diinginkan.

  3. Menggunakan salah satu jenis temporal di atas, Anda akan dapat melakukan semua ini (menggunakan fungsi tanggal seperti yang dipersyaratkan). Output default TIMESTAMP dan DATETIME types adalah string dalam 'YYYY-MM-DD HH:MM:SS' formatnya.

    Secara khusus, "waktu yang telah berlalu" dari membandingkan dua nilai misalnya dapat diperoleh dengan TIMEDIFF() fungsi:

    SELECT TIMEDIFF(end, start) AS elapsed
    FROM   my_table
    WHERE  ...
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memfilter nilai daftar dropdown dengan daftar dropdown lain di ASP.NET, c #

  2. mysql:Bagaimana cara mendapatkan tanggal berikutnya dari hari yang dipilih?

  3. Cara Java EE/JPA untuk menambahkan tabel/entitas baru ke database

  4. MySQL Butuh bantuan mendefinisikan SQL untuk menghapus baris yang tidak diinginkan

  5. MySQL mengubah tabel menambahkan kolom dengan kesalahan sintaks kunci utama