首頁  >  文章  >  資料庫  >  如何在MySQL中準確計算年齡作為整數?

如何在MySQL中準確計算年齡作為整數?

Barbara Streisand
Barbara Streisand原創
2024-10-28 19:49:02859瀏覽

 How to Accurately Calculate Age as an Integer in MySQL?

在MySQL 中將年齡計算為整數

根據儲存在MySQL 資料庫中的出生日期確定個人的年齡時, DATEDIFF()函數提供的天數差異無法提供準確的整數表示。為了克服這項挑戰,需要採取多步驟方法。

第 1 步:計算年份

表達式 YEAR(CURDATE()) - YEAR(birth_date)產生當前日期和出生日期之間的年差。然而,這種方法並沒有考慮到不完整的年份。例如,如果當前日期是 5 月,但出生日期是 6 月,則該人的年齡仍為 31 歲。

第2 步:修正不完整的年份

要解決對於不完整的年份問題,可以使用以下子查詢:

(SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))

此子查詢計算自個人出生日期以來經過的年數和天數,並考慮閏年。

第3 步:合併結果

將年齡計算為整數的最終表達式為:

(YEAR(CURDATE()) - YEAR(birth_date)) - (SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))

此表達式從完整年數中減去不完整的年份,結果是代表個人年齡的整數。

替代解決方案

在MySQL 中將年齡計算為整數的另一個選項是使用TIMESTAMPDIFF() 函數:

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student

該函數直接計算兩個時間戳記之間的年份差,避免了複雜的計算。它還可以透過將 YEAR 替換為 MONTH 或 DAY 來計算月或日的差異。

以上是如何在MySQL中準確計算年齡作為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn