Mengira Perbezaan Umur dalam Tahun dalam MySQL: Penyelesaian Komprehensif
Menentukan umur individu yang disimpan dalam pangkalan data adalah tugas biasa. Walau bagaimanapun, mengira perbezaan tahun antara dua tarikh boleh menjadi mencabar, kerana kaedah konvensional sering mengakibatkan ketidaktepatan atau format data yang tidak diingini.
Andaikan kita mempunyai jadual ringkas bernama "pelajar" dengan lajur "id" dan "birth_date ." Matlamatnya adalah untuk mengira umur setiap pelajar dalam tahun.
Percubaan dan Cabaran Awal
Menggunakan pertanyaan berikut:
select id, datediff(curdate(),birth_date) from student
kami mendapatkan perbezaan umur dalam hari, yang bukan hasil yang diinginkan. Pembahagian dengan 365:
select id, datediff(curdate(),birth_date) / 365 from student
menghasilkan nilai titik terapung dan bukannya integer. Akhir sekali, pengiraan:
select id, year(curdate())-year(birth_date) from student
mengakibatkan ketidaktepatan disebabkan hari lahir yang berlaku selepas tarikh semasa, menghasilkan pengiraan umur yang salah.
Sebuah Penyelesaian Alternatif
Untuk menangani cabaran ini, pertimbangkan pertanyaan berikut:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Menggunakan fungsi TIMESTAMPDIFF() memastikan pengiraan tahun yang tepat, walaupun hari lahir jatuh dalam tahun semasa.
Untuk lebih fleksibel, gantikan "TAHUN" dengan "BULAN" atau "HARI" untuk mengira perbezaan dalam bulan atau hari, masing-masing.
Penyelesaian ini menyediakan kaedah yang tepat dan tepat untuk menentukan perbezaan umur dalam tahun antara dua tarikh yang disimpan dalam pangkalan data MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Umur Tepat dalam Tahun dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!