简单分析一下,加入一个孩子五岁半了,那习惯认为他还是5岁。
用Oracle提供的months_between()函数,先获取出生日期和当前日期的月数,然后除以12向下取整:
使用的时候,将时间段替换成出生日期对应的字段即可。
如果,计算年龄用的次数非常多,最好写成自定义函数。
可用to_char函数将date类型转成字符类型。
如emp表中有如下数据:
如果计算生日的方法是当前日期的年份减去生日的年份,可用如下语句:
select ename,hiredate,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') from emp
查询结果:
年龄段统计可用case when 语句。
如test表中有以下数据:
其中18-29岁为青年,30-49岁为中年,50岁以上为老年,先统计各个年龄段人数,可用如下语句:
select case when age between 18 and 29 then '青年' when age between 30 and 59 then '中年' when age>=60 then '老年' end as 年龄段,count(*) as 人数
from test
group by case when age between 18 and 29 then '青年' when age between 30 and 59 then '中年' when age>=60 then '老年' end
统计结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)