在DB2中,使用sql 计算想要的日期值,比如昨天,上月的最后一天,下个月的最后一天等。

/*
作者:宾晓辰
微信:BD_BXC
MAIL:646501050@QQ.COM
PHONE:18026268607
日期:20210330
*/

create OR REPLACE function get_L1D_YYYYMMDD ( statis_date int)
–L1D_YYYYMMDD 昨天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(TO_DATE(STATIS_DATE,‘YYYYMMDD’) -1 DAYS,‘YYYYMMDD’);

SELECT get_L1D_YYYYMMDD(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_YYYYMM ( statis_date int)
–YYYYMM --本月
returns int
language sql
deterministic
no external action
contains sql
return SUBSTR(STATIS_DATE,1,6);

SELECT get_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_M01_YYYYMMDD ( statis_date int)
–M01_YYYYMMDD --本月第一天
returns int
language sql
deterministic
no external action
contains sql
return SUBSTR(STATIS_DATE,1,6)||‘01’;

SELECT get_M01_YYYYMMDD(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_M31_YYYYMMDD ( statis_date int)
–M31_YYYYMMDD --本月最后一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(STATIS_DATE,1,4)||‘0101’,‘YYYYMMDD’),1)-1 DAYS,‘YYYYMMDD’);

SELECT get_M31_YYYYMMDD(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_L1M_YYYYMM ( statis_date int)
–L1M_YYYYMM --上个月
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),-1),‘YYYYMM’);

SELECT get_L1M_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_L1MD01_YYYYMMDD ( statis_date int)
–L1MD01_YYYYMMDD --上月第一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),-1),‘YYYYMM’) ||‘01’;

SELECT get_L1MD01_YYYYMMDD(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_L1MD31_YYYYMMDD ( statis_date int)
–L1MD31_YYYYMMDD --上月最后一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(STATIS_DATE,1,6)||‘01’,‘YYYYMMDD’),1)-1 DAYS,‘YYYYMMDD’);

SELECT get_L1MD31_YYYYMMDD(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F1M_YYYYMM ( statis_date int)
–F1M_YYYYMM --下月
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),1),‘YYYYMM’);

SELECT get_F1M_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F1MD01_YYYYMM ( statis_date int)
–F1MD01_YYYYMM --下月第一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),1),‘YYYYMM’) ||‘01’;

SELECT get_F1MD01_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F1MD31_YYYYMM ( statis_date int)
–F1MD31_YYYYMM --下月最后一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(STATIS_DATE,1,6)||‘01’,‘YYYYMMDD’),2)-1 DAYS,‘YYYYMMDD’);

SELECT get_F1MD31_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F2M_YYYYMM ( statis_date int)
–F2M_YYYYMM --下下月
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),2),‘YYYYMM’);

SELECT get_F2M_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F2MD01_YYYYMM ( statis_date int)
–F2MD01_YYYYMM --下下月第一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(STATIS_DATE,‘YYYYMMDD’),2),‘YYYYMM’) ||‘01’;

SELECT get_F2MD01_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

create OR REPLACE function get_F2MD31_YYYYMM ( statis_date int)
–F2MD31_YYYYMM --下下月最后一天
returns int
language sql
deterministic
no external action
contains sql
return TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(STATIS_DATE,1,6)||‘01’,‘YYYYMMDD’),3)-1 DAYS,‘YYYYMMDD’);

SELECT get_F2MD31_YYYYMM(‘20210228’) FROM T_BXC_BASE ;

在DB2中,使用sql 计算昨天、最后一天等日期相关推荐

  1. db2 联合数据源 mysql_详解DB2中联合SQL Server数据

    [51CTO独家特稿]DB2中联合SQL Server步骤: 1.安装DB2 2.安装IBM DataDirect ODBC驱动 3.安装关系连接器 或安装InfoSphere DB2(InfoSph ...

  2. DB2中常用sql语句语法

    DB2 提供了关连式资料库的查询语言sql(structured query language),是一种非常口语化.既易学又易懂的语法.此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作, ...

  3. 嵌套SQL语句訪问DB2中SQLCA的调用技巧

    在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...

  4. SQL获得当前的日期和时间与DB2 中操作日期和时间

    星期六 2007年08月18日 要使用 SQL 获得当前的日期.时间及时间戳记,请参考适当的 DB2 寄存器: SELECT current date FROM sysibm.sysdummy1 SE ...

  5. 第16/24周 SQL Server 2014中的基数计算

    大家好,欢迎回到性能调优培训.上个星期我们讨论在SQL Server里基数计算过程里的一些问题.今天我们继续详细谈下,SQL Server 2014里引入的新基数计算. 新基数计算 SQL Serve ...

  6. DB2中sql语句占位符问题

    初到公司实习,让做一个网站,使用struts2+spring框架,数据库使用的是DB2,以前没接触过DB2,对它不了解.在写sql语句的时候遇到一些问题,首先就是在mysql下的limit到了DB2中 ...

  7. DB2中使用事件监控器获取某个时间段里某个用户执行的SQL语句

    需求:管理员想要监控在一段时间里,用户DB2TEST跑过哪些SQL语句,这个在DB2中如何做到? 答: 可以采用STATEMENT类型的事件监控器: 测试过程: 1.) 管理员用户连库.创建事件监控器 ...

  8. Oracle中使用SQL根据出生日期精确计算年龄

    Oracle中使用SQL根据出生日期精确计算年龄 提示:以下是本篇文章正文内容,下面案例可供参考 代码如下(示例): select XM,CSNY as 出生日期,-- extract函数用于提取日期 ...

  9. oracle 求一年多少天,SQL 计算一年有多少天

    SQL 计算一年有多少天,计算当前年份有多少天. SQL 计算一年有多少天 问题描述 计算当前年份有多少天. SQL 计算一年有多少天 解决方案 计算当前年份有多少天,等同于计算下一年的第一天和当前年 ...

最新文章

  1. 初步了解qemu虚拟机
  2. 类属性的特征java_java定义类、属性、方法
  3. java 带点的字符串处理,关于android:java中字符串上带点的分割函数
  4. ASP.NET Core Web API中使用Swagger
  5. Ajax_Apache访问资源文件的权限配置、资源存放路径配置、配置虚拟主机、动态网站静态网站区别...
  6. 特斯拉地图数据服务以后由百度地图提供
  7. weblogic进程自动关闭_手机总是清理内存?原来是6个设置没关,1秒关闭多用3年...
  8. html css . doc,html+CSS基础.doc
  9. 全面认识openstack:OpenStack架构详解
  10. 你所不知道的Quartz特性
  11. KeelKit 数据库文档生成器已完成
  12. Shiro(一)——Shiro概述
  13. 量子多体理论怎么样理解,多体系统的量子理论
  14. 随机森林 Iris 特征重要性
  15. 全球及中国吊链总成行业研究及十四五规划分析报告
  16. 【年终巨献】车联网距离我们还有多远?《5G与车联网技术》给您最专业的解读...
  17. 丧尸的世界·《丧尸西游》
  18. js 树形结构数据 已知某一子节点 一次向上获取所有父节点
  19. Python财务分析
  20. 爬虫常见的加密解密算法

热门文章

  1. 微信小程序开发学习小结之tabBar组件
  2. 2016-09-01[关于Paint笔触的了解]
  3. FPGA通过PCIe读写DDR4仿真IP核
  4. google的一些秘密入口 很好玩
  5. 计算机vba函数,excel vba求平均值_求VBA编程或EXCEL公式(函数)
  6. 远程调用中间件RPC
  7. java旅游管理面试,旅游管理专业面试问题
  8. Material Design控件使用(二)
  9. win10戴尔游侠GTX1050TI+TensorFlow-gpu+CUDA10.0.130+CUDNN7.4.1.5配置深度学习环境
  10. 快速画出哈夫曼树/霍夫曼树/最优树