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

本文介绍了如何在DB2数据库中使用SQL函数来获取特定日期,如昨天、上个月最后一天、下个月第一天等。通过创建一系列自定义函数,例如get_L1D_YYYYMMDD、get_M31_YYYYMMDD等,实现了日期计算的便捷操作。
部署运行你感兴趣的模型镜像

在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 ;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值