oracle 关于年龄计算问题? 5

根据出生日期和当前日期去计算一个人的年龄时,要求变成下面的样子SQL应该怎么处理当前日期出生日期岁数月数天数2014-9-38:531978-12-16358182014... 根据 出生日期 和 当前日期 去计算一个人的年龄时,要求变成
下面的样子 SQL 应该怎么处理

当前日期 出生日期 岁数 月数 天数

2014-9-3 8:53 1978-12-16 35 8 18

2014-9-4 15:15 2014-9-4 0 0 1
展开
 我来答
longrenyingdc8ecb1
2015-04-28 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2368万
展开全部
用month_between做,应该会好一些。
select
当前日期,
出生日期,
trunc(months_between(当前日期,出生日期)/12) 年数,
trunc(months_between(当前日期,出生日期))%12 月数,
ceil(当前日期-add_month(出生日期,trunc(months_between(当前日期,出生日期))) 天数 from table
可能一些细微的地方还需要些调整,不过大体上应该差不多了。
最后那个ceil可能要分成两个case when的部分是
case when substr(to_char(当前日期,'yyyy-mm-dd'),-5) != substr(to_char(出生日期,'yyyy-mm-dd'),-5) then trunc(当前日期-add_month(出生日期,trunc(months_between(当前日期,出生日期)))
when substr(to_char(当前日期,'yyyy-mm-dd'),-5) = substr(to_char(出生日期,'yyyy-mm-dd'),-5) then 1 end 天数
我看了下你上面的两个例子,好像因为日期相等比较特殊,所以我尝试用ceil试试,如果不行那么就用下面这个,我估计差不多了,不过我可没有环境,只能是凭空想象,剩下的只能你自己去实验和修改了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面污染有助于实施... 点击进入详情页
本回答由ZESTRON提供
樊海川0
2015-04-28
知道答主
回答量:20
采纳率:0%
帮助的人:9.6万
展开全部
Select sysdate 当前日期,
dob 出生日期,
trunc(months_between(Sysdate, dob) / 12) 年,
trunc(Mod(months_between(Sysdate, dob), 12)) 月,
trunc(Sysdate -
add_months(dob,
trunc(months_between(Sysdate, dob) / 12) * 12 +
trunc(Mod(months_between(Sysdate, dob), 12)))) 日
From (Select csrq dob from table);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
景景花园45
2018-03-08
知道答主
回答量:1
采纳率:0%
帮助的人:895
展开全部
计算人的周岁月份到了,但还差2天算不算到几周岁了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式