Bagaimana untuk Mengira Perbezaan Umur Tepat dalam Tahun dalam MySQL?

Patricia Arquette
Lepaskan: 2024-10-31 12:12:01
asal
893 orang telah melayarinya

How to Calculate the Accurate Age Difference in Years in MySQL?

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
Salin selepas log masuk

kami mendapatkan perbezaan umur dalam hari, yang bukan hasil yang diinginkan. Pembahagian dengan 365:

select id, datediff(curdate(),birth_date) / 365
from student
Salin selepas log masuk

menghasilkan nilai titik terapung dan bukannya integer. Akhir sekali, pengiraan:

select id, year(curdate())-year(birth_date) 
from student
Salin selepas log masuk

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
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!