黎明时光xc
使用场景
统计查询中,我们会经常要用到同期比,环比等多种计算方式,经常要用到月初,月末,年初,年末,周末等概念,DB2下如何取到这些日期值,我写了一个小函数。
函数设计
函数名:BXC_DATE
函数参数:I_DATE :参考日期,格式示例:20211124
I_DIFF :周期差数字,格式示例:-1,1
I_TYPE:取日期类型,格式示例:‘DAY’,‘MONTH’,‘YEAR’,‘WEEK’,‘MONTH_FIRST’,‘MONTH_END’,‘YEAR_FIRST’,‘YEAR_END’,‘WEEK_FIRST’,‘WEEK_END’
创建函数BXC_date
CREATE OR REPLACE FUNCTION BXC_DATE
( I_DATE INT --参考日期, 默认当天
, I_DIFF INT DEFAULT -1 --日期差数字
, I_TYPE VARCHAR(256) DEFAULT 'DAY' --日期差类型 'D,Y,M ,ED, BD'
)
--黎明时光xc 获得新的日期 18026268607
RETURNS INT
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
CONTAINS SQL
BEGIN ATOMIC
DECLARE C_TIME DATE ;
DECLARE C_DAYS INT ;
DECLARE C_WEEK INT ;
DECLARE C_DATE INT ;
DECLARE O_DATE INT ;
IF I_DATE IS NULL TH