1、获取日期区间内的日期详情列表
1 2 3 4 5 | SELECT TO_CHAR(TO_DATE( '2018-01-01 00:00:00' , 'yyyy-mm-dd hh24:mi:ss' ) + ROWNUM - 1, 'yyyy-mm-dd hh24:mi:ss' ) datelist FROM DUAL CONNECT BY ROWNUM < trunc(to_date( '2019-01-01 00:00:00' , 'yyyy-mm-dd hh24:mi:ss' ) - to_date( '2018-01-01 00:00:00' , 'yyyy-mm-dd hh24:mi:ss' )) + 1 |
输出
2、过滤非工作日的时间,需要写个临时表,手工维护节假日
思路:where 上面 not in 下就是了
3、做成函数
输入开始,结束时间,返回时间差 - 排除非工作日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE OR REPLACE FUNCTION get_time_difference_no_work ( startTime in varchar2, endTime in varchar2 ) RETURN NUMBER IS DayNumber NUMBER(10,0); BEGIN SELECT round(to_number(to_date(endTime, 'yyyy-MM-dd' ) - to_date(startTime, 'yyyy-MM-dd' ))-COUNT(1) ) into DayNumber FROM ( select (to_date(startTime, ' yyyy-MM-dd ' ) + rownum - 1) curdt from user_objects where rownum <= (to_date(endTime, 'yyyy-MM-dd' ) - to_date(startTime, 'yyyy-MM-dd' ) + 1)) WHERE curdt in ( SELECT holiday_bdate FROM TPM_TABLE); RETURN DayNumber; END; |
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-06-27 IDEA 2018 LICENSE SERVER
2012-06-27 js 获取当前年月日时分秒星期