【SQL】求两个日期值之间的工作天数
来源:互联网 发布:redis mac 客户端 编辑:程序博客网 时间:2024/05/21 20:27
读书:《Oracle查询优化改写》后有感。
以emp表为例,我们需要求得hiredate的最大值与最小值之间的工作天数。
首先,我们需要求出max和min的hiredate:
SQL> select max(t.hiredate) as maxdate, min(t.hiredate) as mindate from emp t;MAXDATE MINDATE----------- -----------1987/5/23 1980/12/17SQL>
其次,就是最关键的了:要将min到max之间的日期全部展示出来,这里需要借助level,level的深度就是max到min之间的天数(加不加1,看各人,反正我是没加):
select t1.mindate + (level - 1) as datestep from (select max(t.hiredate) as maxdate, min(t.hiredate) as mindate from emp t) t1connect by level <= t1.maxdate - t1.mindate
结果:
(这里没有展示完全)
再然后根据to_char函数,将日期类型转换为星期,然后过滤即可:
SQL> select sum(case 2 when to_char(t2.datestep, 'D') not in ('1', '7') then 3 1 4 else 5 0 6 end) as workdays 7 from (select t1.mindate + (level - 1) as datestep 8 from (select max(t.hiredate) as maxdate, min(t.hiredate) as mindate 9 from emp t) t1 10 connect by level <= t1.maxdate - t1.mindate) t2; WORKDAYS---------- 1678SQL>
0 0
- 【SQL】求两个日期值之间的工作天数
- 求两个日期之间相隔的天数
- 求两个日期之间相隔的天数
- 求两个日期之间相隔的天数:
- 计算两个日期之间的工作天数
- 计算两个日期之间的工作天数
- SQL计算两个日期之间的工作天数(除过周六日的天数)
- SQL计算两个日期之间的工作天数(除过周六日的天数)
- Sql计算两个日期之间的天数
- c/c++求两个日期之间的间隔天数
- java中求两个日期之间的天数
- /* 求任意两个日期之间相差的天数 */
- 求两个日期之间间隔的天数,Python实现
- C++求两个日期之间的相差天数
- 面试题之求两个日期之间的天数差
- php 求两个日期之间相差的天数(函数)
- Java中计算任意两个日期之间的工作天数
- Java中计算任意两个日期之间的工作天数
- Game of Life
- Eclipse无法检测到手机的解决方法
- IOS基础UI之(六)综合小案例-应用管理
- Invalid result location value/parameter 解决办法
- support design开发控件
- 【SQL】求两个日期值之间的工作天数
- 关于Android 性能优化的整理
- 实现lamp docker数据容器(mysql)与应用容器(apache+php)独立运行
- java中的集合
- wke升级vs2010,vs2013
- valgrind 检查内存泄漏
- super与this的用法
- 第七周 项目3-负数把正数赶出队列
- Java运行时内存区域