Rumah  >  Artikel  >  pangkalan data  >  Bagaimana Mengira Umur dengan Tepat sebagai Integer dalam MySQL?

Bagaimana Mengira Umur dengan Tepat sebagai Integer dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-10-28 19:49:02859semak imbas

 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))

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))

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

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!

Kenyataan:
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