【需求】出生后按照日历计算的历法年龄。年龄满1周岁的,以实足年龄的相应整数填写;年龄不足1周岁的,按照实足年龄的月龄填写,以分数形式表示:分数的整数部分代表实足月龄,分数部分分母为30,分子为不足1个月的天数,如“2 15/30月”代表患儿实足年龄为2个月又15天。
select DECODE(SIGN(TRUNC(MONTHS_BETWEEN(sysdate, B.出生日期)) - 12),-1,
TRUNC(MONTHS_BETWEEN(sysdate, B.出生日期))||' '|| to_number(
case when to_char(sysdate,'dd')>=to_char(B.出生日期,'dd')
then to_char(sysdate,'dd')-to_char(B.出生日期,'dd')
else to_char(last_day(B.出生日期),'dd')-to_char(B.出生日期,'dd')+
to_char(sysdate,'dd')\end
)||'/'||'30',NULL) BZYZSNL
from user B
找了很久怎么计算中间那个天数,根据这位博主的方法进行修改,达到我想要的效果了!!
文章介绍了如何使用OracleSQL的MONTHS_BETWEEN函数结合其他逻辑,来精确计算出带有日龄的年龄,特别是对于不满一岁的儿童,以分数形式表示月龄和天数。示例代码解决了在当前日期与出生日期之间计算天数的问题。
3714

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



