在MySQL 中將年齡差計算為整數
在處理年齡計算時,確定資料庫中一個人的年齡是一個小小的挑戰。考慮包含“id”和“birth_date”列的“student”表。
要計算以天為單位的年齡,可以使用表達式 datediff(curdate(),birth_date),但這會傳回浮點數值。除以 365 也會產生浮點數值。
將年份計算為year(curdate())-year(birth_date)也會帶來一個問題。例如,如果一個人出生於 1970 年 6 月,當前日期是 5 月,則表達式將錯誤地傳回 32 年而不是 31。
整數年份差異的替代解決方案:
要解決此問題,請考慮以下SQL 語句:
<code class="sql">SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student</code>
此表達式計算'date_of_birth' 和'CURDATE()' 之間的差值(以年為單位),從而得到一個整數值。
月份和日期的擴展:
要計算月份差異,請將表達式中的「YEAR」替換為「MONTH」:
<code class="sql">SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student</code>
同樣,對於天數的差異,將「YEAR」替換為「DAY」:
<code class="sql">SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student</code>
以上是如何在 MySQL 中以整數形式計算年齡差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!