近日有个报表端的特殊需求,遇到了闰年闰月闰日的处理,具体如下:

新需求,生成一个新字段预警日期(warndate),要求在原表结束日期(enddate)基础上减一年

原表(A)主要涉及三个字段:

1、启始日期(startdate)

2、年数(years)

3、结束日期(enddate)

其中:结束日期=启始日期+年数

问题:启始日期含有2月29日的闰日,而年数(years)不固定,导致结束日期(enddate)可能是闰年也可能非闰年,如果直接减一年,当结束日期前一年为闰年时,会少一天。

例如:

闰年年份
启始日期(startdate) 年数(years) 结束日期(enddate)

预警日期

(错误减一年)(warndate)

预警日期

(正确减一年)(warndate)

2020年2月29日 5年 2025年2月28日 2024年2月28日 2024年2月29日

处理方法,在逻辑中首先对启始日期(startdate)进行判断,如果含有闰月闰日(0229),则结束日期(enddate)先加一天,再减一年,最后再减一天即可!

代码如下:

SELECT THEN (CASE WHEN TO_CHAR(STARTDATE,'MMDD')='0229'  THEN ENDDATE::timestamp + ('1 day')::interval+ '-1 year'::interval+ '-1         day'::interval --闰月闰日特殊处理ELSE ENDDATE::timestamp + '-1 year'::interval END AS WARNDATEFROM A

关于greenplum(postgersql)日期为闰年闰月闰日的处理相关推荐

  1. JS验证日期【闰年月大月小】

    JS验证日期[闰年月大月小] function checkDate() {var strDate = document.myform.txtTime.value;if (strDate != &quo ...

  2. 听过闰年闰月,听过闰秒吗?

    闰年闰月大家都知道,可是你听说过闰秒这回事情吗? 闰年是为了弥补是我们的历法365天和地球实际公转365.25天的差距,所以每4年会一年是闰年,多出来的那一天就是2月29日. 闰月则是和阴历有关,不同 ...

  3. 【科普】听过闰年闰月,可你听过闰秒吗?

    闰年闰月大家都知道,可是你听说过闰秒这回事情吗? 闰年是为了弥补是我们的历法365天和地球实际公转365.25天的差距,所以每4年会一年是闰年,多出来的那一天就是2月29日. 闰月则是和阴历有关,不同 ...

  4. 单片机 DS1302 公历年月日 换算出星期、农历月份、农历日期 判断闰年

    传入格式:2020年,12月,12日. 返回1到7 代表星期一到星期天 /** 由年月日获取星期 https://www.cnblogs.com/fengbohello/p/3264300.html* ...

  5. 闰年的计算方法及程序算法的实现

    由于这个问题找的人还是非常多,所以今天我把它从我原来的blog上转过来,希望对大家有所帮助. 这篇文章是我去年的时候写的,那时候还没用PHP,所以闰年的计算方法没有PHP的,今天在这里补充上这段代码, ...

  6. html闰年计算方法,闰年的计算方法及程序算法的实现

    由于这个问题找的人还是非常多,所以今天我把它从我原来的blog上转过来,希望对大家有所帮助. 这篇文章是我去年的时候写的,那时候还没用PHP,所以闰年的计算方法没有PHP的,今天在这里补充上这段代码, ...

  7. 【蓝桥杯】计算指定日期为当年第几天

    文章目录 前言 题目 分析 算法 难度 实战 1.创建算法 2.创建测试用例 3.测试结果 总结 前言 蓝桥杯全国软件和信息技术专业人才大赛由工业和信息化部人才交流中心主办,每年参赛人数超过30000 ...

  8. 2020年有寓意的领证日期_2020年领证日期怎么选

    领证是一件非常浪漫的事情,准备在2020年这个充满爱的一年领证的朋友们知道有哪些好的领证日期吗?下面就让我们一起来看看2020年领证日期怎么选 2020年有寓意的领证日期. 2020年领证日期怎么选 ...

  9. js日期计算,根据当前日期计算n个月后的日期

    js计算n个月后的日期,并匹配月底,处理闰年,闰月 工作中遇到日期计算的需求,需要根据给定的日期计算出n个月后的日期,开始感觉挺简单一需求,因为现成的moment.js就有日期加月份计算的功能,但需求 ...

  10. 【Salesforce】巧用公式字段及标准函数解决日期间隔业务需求

    巧用公式字段及标准函数解决日期间隔业务需求 文章目录 巧用公式字段及标准函数解决日期间隔业务需求 业务场景 公式字段特点 使用Salesforce提供的方法构建公式 判断是否达到一季度 判断有没有多余 ...

最新文章

  1. StackOverflow上面 7个最好的Java答案
  2. CenterNet2:比强更强的二阶段网络,COCO成绩最高达到56.4mPA
  3. 清空数据库部分表的数据 Oracle
  4. 中序遍历的模板(以及变形更新中。。。)
  5. python--列表与字典
  6. python关键字和保留字_或带有Python示例的关键字
  7. linux命令之awk终极系列
  8. 初学Reporting Service2008
  9. PCIE万兆网卡-华硕XG-C100C
  10. Oracle等待事件之Enqueue(锁)
  11. 基于SEIR传染病模型的新冠肺炎疫情预测
  12. 如何从Excel中的另一个单元格引用格式和值?
  13. mysql磁盘空间碎片回收
  14. @人生随笔:一年一影帝,百年周星驰
  15. Ubuntu 安装amd 显卡驱动
  16. 年纪大了,这样转行linux运维
  17. 机器学习笔记之深度信念网络(一)背景介绍与结构表示
  18. ubuntu 安装thinkphp-swoole
  19. python集合元素个数_python如何取set元素个数
  20. php chinapay,GitHub - jakehu/chinapay-for-ecshop: 上海银联(chinapay)支付插件 for ECSHOP

热门文章

  1. google工具栏新览
  2. Linux查看硬盘型号
  3. 别让Java对象逃逸(Object Escape)
  4. 从日志统计到大数据分析
  5. 闲人闲谈ERP项目逸事——德国做SAP项目回忆
  6. 毕业后5年,我终于变成了月薪13000的软件测试工程师
  7. 0基础怎么自学软件测试?
  8. 18款表白源码,搭建网站必备,总有一款适合你
  9. 函数柯里化curry 与合成函数 compose
  10. 卡内基梅隆计算机金融,卡耐基梅隆大学计算金融项目申请要求是什么?