一看到有關(guān)日期的題目,無論是否復雜蓄拣,都有些頭痛扬虚。這部分的函數(shù)很多,不熟悉球恤。
今天做到一個簡單的題目:
要求:1、查詢各學生的年齡
2荸镊、字段要求及順序:學號(sid)咽斧、姓名(sname)、年齡
標準答案(會造成誤差)
select
sid
,sname
,year(curdate())-year(sage) as age
from student;
兩種實現(xiàn)需求的mysql查詢語句如下:
select
sid
,sname
,if(month(curdate())-month(sage)>0,year(curdate())-year(sage),year(curdate())-year(sage)-1) as age
from student;
#思路比較簡單:
#判斷如果當前日期的月份大于出生日期的月份张惹,則直接用年份相減。
#如果當前日期的月份小于出生日期的月份岭洲,則用年份想減得到的差還要減1才能得到年齡宛逗。
另一個方法的思路是來自于根據(jù)出生日期計算年齡。這里的出生日期大都在1990年盾剩,因此不存在from_days()中的參數(shù)為負數(shù)的情況雷激,可以直接使用。
select
sid,
sname,
year(from_days(datediff(curdate(), date(sage)))) as age
from
student;