Rumah > pangkalan data > tutorial mysql > Bagaimana Mengira Perbezaan Umur dengan Tepat dalam Tahun Menggunakan MySQL?

Bagaimana Mengira Perbezaan Umur dengan Tepat dalam Tahun Menggunakan MySQL?

Linda Hamilton
Lepaskan: 2024-10-29 18:12:10
asal
1011 orang telah melayarinya

 How to Accurately Calculate Age Difference in Years Using MySQL?

Mengira Perbezaan Umur dalam MySQL sebagai Integer

Menentukan umur individu dalam pangkalan data boleh menimbulkan cabaran apabila berurusan dengan pengiraan tarikh. Fungsi terbina dalam MySQL DATEDIFF mengira perbezaan antara dua tarikh dalam hari, memerlukan pemprosesan lanjut untuk mendapatkan umur dalam tahun.

Satu pendekatan melibatkan membahagikan perbezaan hari dengan 365, tetapi ini menghasilkan titik terapung nilai. Untuk mendapatkan integer, komponen tahun tarikh semasa dan tarikh lahir boleh ditolak:

SELECT id, year(curdate())-year(birth_date)
FROM student
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini menghadapi isu apabila umur yang dikira dimatikan selama satu tahun untuk individu yang lahir selepas bulan semasa . Sebagai contoh, seseorang yang lahir pada Jun 1970 akan dianggap berumur 32 tahun menggunakan kaedah ini walaupun mereka baru berusia 31 tahun dan lima bulan.

Resolusi:

Kepada menangani isu ini, MySQL menyediakan fungsi TIMESTAMPDIFF, yang menawarkan pendekatan yang lebih tepat untuk mengira perbezaan umur. Pertanyaan berikut menggunakan TIMESTAMPDIFF:

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

Dengan menggantikan TAHUN dengan BULAN atau HARI, perbezaan umur boleh dikira dalam bulan atau hari, masing-masing. Kaedah ini berkesan mengendalikan senario di mana umur dimatikan sebanyak satu unit pada bulan tertentu.

Atas ialah kandungan terperinci Bagaimana Mengira Perbezaan Umur dengan Tepat dalam Tahun Menggunakan 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