gpt4 book ai didi

sql - 在 Oracle SQL 中计算工作日(无函数或过程)

转载 作者:行者123 更新时间:2023-12-04 02:46:05 26 4
gpt4 key购买 nike

我正在尝试计算 Oracle select 中两个日期之间的工作日。当我的计算给出大多数结果对于给定日期是正确的(我将它与 Excel 中的 NETWORKDAYS 进行比较)时,我已经到了这一点,但有时它从 2 天到 -2 天不等——我不知道为什么......

这是我的代码:

SELECT
((to_char(CompleteDate,'J') - to_char(InstallDate,'J'))+1) - (((to_char(CompleteDate,'WW')+ (52 * ((to_char(CompleteDate,'YYYY') - to_char(InstallDate,'YYYY'))))) - to_char(InstallDate,'WW'))*2) as BusinessDays
FROM TABLE

谢谢!

最佳答案

解决方案,最后:

SELECT OrderNumber, InstallDate, CompleteDate,
(TRUNC(CompleteDate) - TRUNC(InstallDate) ) +1 -
((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/7)*2) -
(CASE WHEN TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
(CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) as BusinessDays
FROM Orders
ORDER BY OrderNumber;

感谢您的所有回复!

关于sql - 在 Oracle SQL 中计算工作日(无函数或过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com