如何获取两个日期之间在Informix中的工作日数

西克森

我需要在Informix中创建函数来计算两个给定日期之间的工作日数。我用假期和两个Informix函数创建了表“ prazkal”:

create function is_holiday(d datetime year to day)
returning boolean;
    define hcnt integer;

    if weekday(d) = 0 or weekday(d) = 6 then
        return 't';
    end if;

    ---code that check if 'd' is marked as holiday in calendar
    select count(*) into hcnt from prazkal where datpra = d;
    if hcnt > 0 then
      return 't';
    end if;

    return 'f';
end function;

create function work_days(start_d DATE, end_d DATE)
returning integer;
define new_d datetime year to day;
define count_days integer;
define i integer;
    let i = 0;

    let count_days = end_d - start_d;
    let new_d = CAST(end_d AS DATETIME YEAR TO DAY);


    while i < count_days
        let new_d = new_d - interval(1) day to day;
        if not is_holiday(new_d) then
            let i = i + 1;
        end if;
    end while


    return i;
end function;

我的两个功能都在这篇文章中进行了修改函数work_days的结果是两个日期(end_d,start_d)之间的天数,而不是工作天数。我在哪里犯了错误?

乔纳森·勒夫勒(Jonathan Leffler)

您的循环不断增加,i直到它是中的数字为止count_days,因此答案将总是count_days(非常缓慢地计算)。您还需要第二个条件new_d > start_d

while i < count_days and new_d > start_d
    let new_d = new_d - interval(1) day to day;
    if not is_holiday(new_d) then
        let i = i + 1;
    end if;
end while

>因为循环递减然后进行检查new_d,所以该方法是合适的,因此最后一个循环将进行测试start_d

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

获取Mongo DB中两个日期之间的工作日数

来自分类Dev

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

来自分类Dev

SQL Server 查询以获取两个日期之间的工作日数,不包括假期

来自分类Dev

应用于分组数据框中的组的两个日期之间的工作日数

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在Power Pivot中计算两个日期之间的工作日数

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

通过使用python导出周末和特定假期来计算两个日期之间的工作日数

来自分类Dev

列出SQL中两个日期之间的所有工作日期

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何获得两个日期之间的差异(informix)?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    获取Mongo DB中两个日期之间的工作日数

  5. 5

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

  6. 6

    SQL Server 查询以获取两个日期之间的工作日数,不包括假期

  7. 7

    应用于分组数据框中的组的两个日期之间的工作日数

  8. 8

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

  9. 9

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

  10. 10

    在Power Pivot中计算两个日期之间的工作日数

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

    通过使用python导出周末和特定假期来计算两个日期之间的工作日数

  15. 15

    列出SQL中两个日期之间的所有工作日期

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

    如何获得两个日期之间的差异(informix)?

热门标签

归档