如何计算日期转2015年后与年初的天数差并按闰年规则归一化
计算日期与2015年元旦的天数占比
需求说明
- 计算日期字段
INC_DATE与2015年1月1日的天数差,再除以对应年份总天数,得到占比值 - 无论
INC_DATE本身属于哪一年,统一以2015年为基准转换日期进行计算 - 特殊场景处理:若
INC_DATE是2月29日,按闰年总天数366计算占比,其余情况按平年365计算
实现代码
case when (extract(month from inc_date)=2 and extract(day from inc_date)=29) then (to_date(inc_date,'2015/mm/dd') - to_date ('2015-01-01','yy/mm/dd'))/366 else (to_date(inc_date,'2015/mm/dd') - to_date ('2015-01-01','yy/mm/dd'))/365 end as E1
代码逻辑解释
- 首先通过
extract函数判断INC_DATE是否为2月29日,针对该特殊日期单独使用366作为分母 - 使用
to_date(inc_date, '2015/mm/dd')提取INC_DATE的月日信息,转换为2015年对应的日期 - 计算转换后的日期与2015年1月1日的天数差,再除以对应年份总天数,最终得到结果字段
E1
内容的提问来源于stack exchange,提问作者mandu J.
相关产品推荐
相关产品推荐

