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

Bagaimana cara menyimpan Tanggal Lahir dan Usia agar Usia dapat diperbarui setiap hari di PHP/MySQL?

Jawaban sederhananya adalah jangan; tidak pernah menyimpan usia seseorang. Ini berubah untuk setiap orang setiap tahun, tetapi, seperti yang Anda katakan, Anda harus memeriksa apakah itu benar untuk setiap orang setiap hari.

Hanya simpan tanggal lahir, lalu hitung usia saat memilih dari database. Hanya today - date of birth jadi hampir tidak membutuhkan CPU sama sekali.

EDIT:

Untuk memperluas komentar saya di jawaban ManseUK ada juga kemungkinan gagal. Apa yang terjadi jika server/database Anda sedang down? Atau pembaruan Anda gagal berjalan pada waktu yang ditentukan? Atau seseorang datang dan menjalankannya secara manual setelah pembaruan dijalankan untuk tanggal tersebut? Atau seseorang mematikan penjadwal Anda? Tidak ada bahaya hal ini terjadi jika Anda menghitung Age seperti yang Anda pilih dari database.

Untuk memilih di mana usia antara 25 dan 30 tahun dan dengan asumsi kolom TANGGAL dateofbirth permintaan Anda akan seperti:

select *
  from users
 where dateofbirth between date_add( curdate(), interval -30 year )
                       and date_add( curdate(), interval -25 year )

Pastikan users diindeks pada dateofbirth .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatur variabel lingkungan PYTHON_EGG_CACHE di Mac?

  2. cara menemukan catatan pertama dan terakhir dari tabel mysql

  3. MySQL JOIN mengembalikan bidang NULL

  4. mysql_num_rows():argumen yang diberikan bukan sumber hasil MySQL yang valid

  5. Mengapa Rails mengabaikan Rollback dalam transaksi bersarang (semu)?