•需求说明:
–查询学生出生日期,计算出每个学生的年龄。如果学生年龄大于等于18岁,输出“恭喜,你已经是成年人了。”,否则显示“希望你早日长大。”
思路:
•获得学生出生日期
–计算年龄
–判断年龄是否大于18岁
–输出相关信息
•关键代码:
–出生日期至当前日期的总天数
•DATEDIFF(DY, BornDate, GETDATE())
–获得出生日期至当前日期的周岁
•FLOOR(DATEDIFF(DY,BornDate,GETDATE())/365)
--查询学生出生日期,计算出每个学生的年龄。如果学生年龄大于等于18岁,输出“恭喜,你已经是成年人了。”,否则显示“希望你早日长大。
select StuName as '学生姓名', StuBornDate as '出生日期',datediff(yy,StuBornDate,getdate()) as '年龄', '是否成年'=case
when datediff(yy,StuBornDate,getdate())>=18 then '恭喜,你已经成年了!'
else '希望你早日长大!'
end
from dbo.Student当然,如果是用datediff(yy,StuBornDate,getdate())来获取年龄是很不准确的做法的,那么,我可以是用floor()函数来求解,首先我获取从当前日期到出生日期之间的所有天数DATEDIFF(DY,BornDate,GETDATE()),每年按365天计算DATEDIFF(DY,BornDate,GETDATE())/365得到一个小数的年份,当然我们习惯使用四舍五入的方法秋取整数,所以•FLOOR(DATEDIFF(DY,BornDate,GETDATE())/365) 求出年的整数。那么上段代码可以改成
--查询学生出生日期,计算出每个学生的年龄。如果学生年龄大于等于18岁,输出“恭喜,你已经是成年人了。”,否则显示“希望你早日长大。
select StuName as '学生姓名', StuBornDate as '出生日期',floor(datediff(day,StuBornDate,getdate())/365) as '年龄', '是否成年'=case
when floor(datediff(day,StuBornDate,getdate())/365)>=18 then '恭喜,你已经成年了!'
else '希望你早日长大!'
end
from dbo.Student是不是更加严谨了??
SQL年龄计算与成年判断
本文介绍了一种使用SQL查询来计算学生年龄并判断其是否成年的方法。通过DATEDIFF函数结合FLOOR函数,实现了从学生出生日期计算精确年龄,并根据年龄输出不同提示。
26万+

被折叠的 条评论
为什么被折叠?



