在MySQL 中將年齡差計算為整數
在處理年齡計算時,確定資料庫中一個人的年齡是一個小小的挑戰。考慮包含“id”和“birth_date”列的“student”表。
要計算以天為單位的年齡,可以使用表達式 datediff(curdate(),birth_date),但這會傳回浮點數值。除以 365 也會產生浮點數值。
將年份計算為year(curdate())-year(birth_date)也會引入一個問題。例如,如果某人出生於 1970 年 6 月,當前日期為 5 月,則表達式將錯誤地傳回 32 年而不是 31。
整數年份差異的替代解決方案:
要解決此問題,請考慮以下SQL 語句:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
此表達式計算 'date_of_birth' 和 'CURDATE()' 之間的年差,結果為整數值。
月份和日期的擴展:
要計算月份差異,請將「YEAR」替換為表達式中的'MONTH':
SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student
同樣,對於天數差異,將'YEAR' 替換為'DAY':
SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3