Bagaimana Mengira Umur dengan Tepat sebagai Integer dalam MySQL?

Barbara Streisand
Lepaskan: 2024-10-28 19:49:02
asal
949 orang telah melayarinya

 How to Accurately Calculate Age as an Integer in MySQL?

Mengira Umur sebagai Integer dalam MySQL

Apabila menentukan umur individu berdasarkan tarikh lahir mereka yang disimpan dalam pangkalan data MySQL, perbezaan hari yang disediakan oleh fungsi DATEDIFF() tidak dapat memberikan perwakilan integer yang tepat. Untuk mengatasi cabaran ini, pendekatan pelbagai langkah diperlukan.

Langkah 1: Kira Tahun

Ungkapan YEAR(CURDATE()) - YEAR(birth_date) menghasilkan perbezaan tahun antara tarikh semasa dan tarikh lahir. Walau bagaimanapun, pendekatan ini tidak mengambil kira tahun yang tidak lengkap. Sebagai contoh, jika tarikh semasa ialah Mei tetapi tarikh lahir adalah Jun, umur individu masih 31.

Langkah 2: Betulkan untuk Tahun Tidak Lengkap

Untuk menangani isu tahun yang tidak lengkap, subkueri berikut boleh digunakan:

(SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
Salin selepas log masuk

Subkueri ini mengira bilangan tahun dan hari berlalu sejak tarikh lahir individu, dengan mengambil kira tahun lompat.

Langkah 3: Gabungkan Keputusan

Ungkapan terakhir untuk mengira umur sebagai integer ialah:

(YEAR(CURDATE()) - YEAR(birth_date)) - (SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
Salin selepas log masuk

Ungkapan ini menolak tahun yang tidak lengkap daripada bilangan tahun penuh, terhasil dalam integer yang mewakili umur individu.

Penyelesaian Alternatif

Pilihan lain untuk mengira umur sebagai integer dalam MySQL ialah menggunakan fungsi TIMESTAMPDIFF():

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Salin selepas log masuk

Fungsi ini mengira secara langsung perbezaan tahun antara dua cap waktu, mengelakkan keperluan untuk pengiraan yang rumit. Ia juga boleh digunakan untuk mengira perbezaan dalam bulan atau hari dengan menggantikan TAHUN dengan BULAN atau HARI.

Atas ialah kandungan terperinci Bagaimana Mengira Umur dengan Tepat sebagai Integer dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan