oracle获取上一旬的开始时间和结束时间的实现函数
Oracle 实现 函数 获取 时间 开始 结束
2023-06-13 09:15:05 时间
--获取上旬开始时间
createorreplacefunctionfd_lastxunstart(rqindate)returnstringis
refstrvarchar2(50);
v_rqdate;
begin
--获取上一旬的日期
v_rq:=trunc(rq);
selectcasedecode(trunc((to_char(v_rq,"dd")-1)/10),
0,
"上旬",
1,
"中旬",
"下旬")
when"上旬"then--返回上个月的下旬
to_char(add_months(v_rq,-1),"yyyyMM")||"21"
when"中旬"then
to_char(v_rq,"yyyymm")||"01"else
to_char(v_rq,"yyyymm")||"11"
end
intorefstr
fromdual;
returnrefstr;
endfd_lastxunstart;
--这个返回的是:上旬的开始日期
selectsysdatefromdual;
selectfd_lastxunstart(sysdate)fromdual;
selectfd_lastxunstart(to_date("20130305","yyyymmdd"))fromdual;
selectfd_lastxunstart(to_date("20130311","yyyymmdd"))fromdual;
selectfd_lastxunstart(to_date("20130325","yyyymmdd"))fromdual;
--执行结果为:2013/9/512:08:39、20130821、20130221、20130301、20130311
----获取上一旬的结束日期
--传递进去一个date类型的值,返回一个varchar类型的上旬结束日期
createorreplacefunctionfd_lastxunend(rqindate)returnstringis
refstrvarchar2(50);
v_rqdate;
begin
--获取上一旬的日期
v_rq:=trunc(rq);
selectcasedecode(trunc((to_char(v_rq,"dd")-1)/10),
0,
"上旬",
1,
"中旬",
"下旬")
when"上旬"then--返回上个月的最后1天
--chr(39)这个是加引号
to_char(last_day(add_months(v_rq,-1))+1-1/24/60/60,
"yyyymmdd")
when"中旬"then
to_char(v_rq,"yyyymm")||"10"else
to_char(v_rq,"yyyymm")||"20"
end
intorefstr
fromdual;
returnrefstr;
endfd_lastxunend;
--这个获取的是:上旬的结束日期
selectfd_lastxunend(sysdate)fromdual;
selectfd_lastxunend(to_date("20130305","yyyymmdd"))fromdual;
selectfd_lastxunend(to_date("20130311","yyyymmdd"))fromdual;
selectfd_lastxunend(to_date("20130315","yyyymmdd"))fromdual;
selectfd_lastxunend(to_date("20130221","yyyymmdd"))fromdual;
--执行结果:20130831、20130228、20130310、20130310、20130220
--观察1/24/60/60的作用这个是一秒
selectlast_day(add_months(trunc(sysdate),-1))+1-1/24/60/60
fromdual;
selectlast_day(add_months(trunc(sysdate),-1))fromdual;
selectlast_day(add_months(trunc(sysdate),-1))+1fromdual;
--执行结果:2013/8/3123:59:59、2013/8/31、2013/9/1
相关文章
- 利用Oracle实现多表连接查询(oracle多表连接查询)
- 实现 Oracle 数据库的高可用方案:视频指南(oracle高可用视频)
- Oracle数据库备份与恢复实现方案(oracle数据备份与恢复)
- Oracle闪回功能的关闭步骤(oracle关闭闪回)
- 的实现Oracle序列的实现:一步一步探索(oracle当前序列)
- 解决Oracle安装出错指南(oracle安装出错)
- 利用Oracle触发器构建数据库应用程序(oracle触发器类型)
- Oracle触发器:利用类型实现数据库自动化(oracle触发器类型)
- 深入浅出:Oracle触发器类型介绍(oracle触发器类型)
- 利用Oracle触发器实现智能自动化操作(oracle触发器类型)
- Oracle数据库中的MAX函数应用,查询最大值(oracle查询最大值)
- 使用Oracle管理数据,实现数据集中管理(oracle回车符)
- Oracle 日志文件组:系统管理的基础(oracle日志文件组)
- 数据管理Oracle千万级别数据管理挑战与应对(oracle千万级)
- 提升数据库效率:优化Oracle索引技巧深入探讨Oracle索引调优,提高数据库效率Oracle索引优化策略,助力高效查询与数据分析掌握Oracle索引优化技巧,加速数据库访问速度精通Oracle索引优化,实现高效稳定的数据库运维(oracle索引效率)
- Oracle数据库技术精髓:挖掘实战经验的宝藏(oracle数据库的书籍)
- 解析Oracle架构,一步步实现企业数据优化(oracle架构)
- 深入探索Oracle内部表之秘密(oracle内部表说明)
- Oracle内存双通道实现双倍性能提升(oracle内存双通道)
- Oracle数据库轻松转换为金额(oracle 准换为金额)
- Oracle 13226开启新一代系统转变之路(oracle-13226)
- 利用BLOB数据类型实现Oracle数据的导入(blob导入oracle)
- 实现ORACLE千万数据的快速入库(1千w数据入oracle)
- Oracle系统触发器自动实现任务管理(oracle中系统触发器)
- Oracle优化配置指南效率提升指南(oracle优化配置指南)
- Oracle中如何实现日期减一的操作(oracle中日期减一)
- Oracle中字符串分割技术指南(oracle中字符分割)
- Oracle中使用主外键关系删除数据详解(oracle 主外键删除)
- Oracle instr函数的应用与探究(oracle_instr)
- Oracle Q函数快速定位自定义可查询性(oracle q 函数)
- 深入探索Oracle ESB源码之旅(oracle esb源码)
- Oracle AMS实现企业管理智能化(oracle ams)