Oracle:两个日期之间的天数和排除工作日如何处理负数

约翰

我有两个日期列并试图测量两个日期之间的天数,不包括周末。我得到一个负数,需要帮助解决。

桌子

CalendarDate    DayNumber  FirstAssgn    FirstCnt   DayNumber2  Id  BusinessDays
5/21/2017        Sunday       5/21/17      5/21/17    Sunday    1     -1

询问:

 TRUNC(TO_DATE(A.FIRST_CONTACT_DT, 'DD/MM/YYYY')) - TRUNC(TO_DATE(A.FIRST_ASSGN_DT, 'DD/MM/YYYY'))
 - ((((TRUNC(A.FIRST_CONTACT_DT,'D'))-(TRUNC(A.FIRST_ASSGN_DT,'D')))/7)*2) 
  - (CASE WHEN TO_CHAR(A.FIRST_ASSGN_DT,'DY','nls_date_language=english') ='SUN' THEN 1 ELSE 0 END)
- (CASE WHEN TO_CHAR(A.FIRST_CONTACT_DT,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) 
- (SELECT COUNT(1) FROM HUM.CALENDAR CAL
                   WHERE 1=1
                     AND CAL.CALENDAR_DATE >= A.FIRST_ASSGN_DT
                     AND CAL.CALENDAR_DATE < A.FIRST_CONTACT_DT
                     --BETWEEN A.FIRST_ASSGN_DT AND A.FIRST_CONTACT_DT                      
                     AND CAL.GRH_HOLIDAY_IND = 'Y'
                                                  ) AS Business_Days 

看起来下面的部分需要编辑...

- (CASE WHEN TO_CHAR(A.FIRST_ASSGN_DT,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END)
MT0

改编自我在这里的回答

获取两个星期的星期一之间的天数(TRUNC( datevalue, 'IW' )用作NLS_LANGUAGE查找星期几独立方法),然后添加星期几(星期一 = 1,星期二 = 2 等,最多为 5 到忽略周末)作为结束日期并减去一周中的某一天作为开始日期。像这样:

SELECT ( TRUNC( end_date, 'IW' ) - TRUNC( start_date, 'IW' ) ) * 5 / 7
       + LEAST( end_date - TRUNC( end_date, 'IW' ) + 1, 5 )
       - LEAST( start_date - TRUNC( start_date, 'IW' ) + 1, 5 )
          AS WeekDaysDifference
FROM   your_table

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在linq中获取两个日期之间的工作日计数

来自分类Dev

计算两个日期之间的总业务工作日

来自分类Dev

如何在JavaScript中获取两个不同日期之间的工作日

来自分类Dev

如何获得两个日期之间的月份和天数

来自分类Dev

如何使用moment.js计算Javascript中两个日期之间的“工作日”数?

来自分类Dev

如何在xslt 1.0中仅获取两个日期之间的工作日

来自分类Dev

计算Javascript中两个日期之间的工作日(节假日除外)

来自分类Dev

计算两个日期之间的工作日

来自分类Dev

如何计算oracle中两个日期之间的天数?

来自分类Dev

仅工作日在两个日期和两次之间进行SQL查询

来自分类Dev

优化两个日期之间的工作日统计信息查询

来自分类Dev

如何计算两个日期之间的工作日数?

来自分类Dev

在Postgresql中获取两个日期之间的工作日

来自分类Dev

给定多个工作日作为输入,计算两个日期之间的“实际”天数

来自分类Dev

获取工作日DateTime两个日期的列表

来自分类Dev

SQLite:获取两个日期之间的平均工作日

来自分类Dev

计算表中每一行在两个日期之间的工作日

来自分类Dev

Objective-C中两个日期之间的工作日?

来自分类Dev

如何计算两个日期之间的工作日数

来自分类Dev

在linq中获取两个日期之间的工作日计数

来自分类Dev

计算两个日期之间的总业务工作日

来自分类Dev

可可-计算两个日期之间的工作日

来自分类Dev

SQL获取两个日期之间的工作日数

来自分类Dev

计算Javascript中两个日期之间的工作日(节假日除外)

来自分类Dev

PHP 获取两个特定工作日的日期

来自分类Dev

计算两个日期之间的特定工作日

来自分类Dev

给出工作日的两个日期之间的日期列表

来自分类Dev

Oracle查询以获取两个日期之间的工作日数

来自分类Dev

计算 SSRS 2016 中两个日期之间的工作日

Related 相关文章

  1. 1

    在linq中获取两个日期之间的工作日计数

  2. 2

    计算两个日期之间的总业务工作日

  3. 3

    如何在JavaScript中获取两个不同日期之间的工作日

  4. 4

    如何获得两个日期之间的月份和天数

  5. 5

    如何使用moment.js计算Javascript中两个日期之间的“工作日”数?

  6. 6

    如何在xslt 1.0中仅获取两个日期之间的工作日

  7. 7

    计算Javascript中两个日期之间的工作日(节假日除外)

  8. 8

    计算两个日期之间的工作日

  9. 9

    如何计算oracle中两个日期之间的天数?

  10. 10

    仅工作日在两个日期和两次之间进行SQL查询

  11. 11

    优化两个日期之间的工作日统计信息查询

  12. 12

    如何计算两个日期之间的工作日数?

  13. 13

    在Postgresql中获取两个日期之间的工作日

  14. 14

    给定多个工作日作为输入,计算两个日期之间的“实际”天数

  15. 15

    获取工作日DateTime两个日期的列表

  16. 16

    SQLite:获取两个日期之间的平均工作日

  17. 17

    计算表中每一行在两个日期之间的工作日

  18. 18

    Objective-C中两个日期之间的工作日?

  19. 19

    如何计算两个日期之间的工作日数

  20. 20

    在linq中获取两个日期之间的工作日计数

  21. 21

    计算两个日期之间的总业务工作日

  22. 22

    可可-计算两个日期之间的工作日

  23. 23

    SQL获取两个日期之间的工作日数

  24. 24

    计算Javascript中两个日期之间的工作日(节假日除外)

  25. 25

    PHP 获取两个特定工作日的日期

  26. 26

    计算两个日期之间的特定工作日

  27. 27

    给出工作日的两个日期之间的日期列表

  28. 28

    Oracle查询以获取两个日期之间的工作日数

  29. 29

    计算 SSRS 2016 中两个日期之间的工作日

热门标签

归档