复制代码代码如下所示:
-开始前十天开始
创建或替换功能fd_lastxunstart(RQ日期)返回字符串
refstr VARCHAR2(50);
v_rq日期;
开始
-获得最后十天的日期
v_rq:= trunc(RQ);
选择案例解码(TRUNC(((to_char(v_rq,'dd)- 1)/ 10),
0,
头十天,
1,
中间,
在以后的十天里
当头十天,然后返回到过去十天的上个月。
to_char(add_months(v_rq,- 1),'yyyymm'‘21| |)
那时中间
to_char(v_rq,'yyyymm)| | 01其他
to_char(v_rq,'yyyymm)| |会
终点
为refstr
从双;
返回refstr;
最后fd_lastxunstart;

-返回:开始的前十天
从双选择sysdate;
选择fd_lastxunstart(SYSDATE)从双;
选择fd_lastxunstart(to_date('20130305 ','yyyymmdd '))从双;
选择fd_lastxunstart(to_date('20130311 ','yyyymmdd '))从双;
选择fd_lastxunstart(to_date('20130325 ','yyyymmdd '))从双;

执行结果:2013 / 9 / 5 12:08:39,20130821, 20130221, 20130301,20130311

---最后十天结束
在一个价值日期类型和返回一个VARCHAR类型早日结束日期通
创建或替换功能fd_lastxunend(RQ日期)返回字符串
refstr VARCHAR2(50);
v_rq日期;
开始
-获得最后十天的日期
v_rq:= trunc(RQ);
选择案例解码(TRUNC(((to_char(v_rq,'dd)- 1)/ 10),
0,
头十天,
1,
中间,
在以后的十天里
当头十天,然后返回到最后1天的上个月。
——CHR(39)这是引号
to_char(last_day(add_months(v_rq,- 1))+1 / 24 / 60 / 60,
yyyymmdd)
那时中间
to_char(v_rq,'yyyymm)| | 10其他
to_char(v_rq,'yyyymm)| | 20
终点
为refstr
从双;
返回refstr;
最后fd_lastxunend;

-这是最后十天的结束
选择fd_lastxunend(SYSDATE)从双;
选择fd_lastxunend(to_date('20130305 ','yyyymmdd '))从双;
选择fd_lastxunend(to_date('20130311 ','yyyymmdd '))从双;
选择fd_lastxunend(to_date('20130315 ','yyyymmdd '))从双;
选择fd_lastxunend(to_date('20130221 ','yyyymmdd '))从双;

-执行结果:20130831, 20130228, 20130310,20130310, 20130220

-观察1 24 60 60的效果,这是一秒钟。
选择last_day(add_months(trunc(SYSDATE),1))+1 / 24 / 60 / 60
从双;
选择last_day(add_months(trunc(SYSDATE),1))双;
选择last_day(add_months(trunc(SYSDATE),1))+ 1双;
执行结果:2013 / 8 / 2013 / 31 23:59:59,8 / 31, 2013 / 9 / 1