Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Perbezaan Umur Tepat dalam Tahun dalam MySQL?

Bagaimana untuk Mengira Perbezaan Umur Tepat dalam Tahun dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 12:12:01969semak imbas

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

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!

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