繁体   English   中英

如何在 Oracle 中使用日期操作处理工作日计算

[英]How to handle weekday calculation with date operation in Oracle

我需要处理 StorProc 中的特定场景,我需要在其中进行日期计算,不包括周六和周日。 周末是假期我需要在工作日内处理数据。 我已经实现了下面的代码

if (purchase_date = (trunc(sysdate)-2) or purchase_date = (trunc(sysdate)-1)) Then
specific operation

因为我必须通过上述实现排除 Sat & Sun,所以不经意间给出了错误的结果。 例如,如果今天是星期一,它必须给我星期五的日期,我的实施是给我星期六或星期日。 我只需要计算工作日的日期。 任何帮助,将不胜感激。

谢谢

要将其与前一周进行比较,您可以使用:

IF purchase_date = TRUNC(SYSDATE) 
                 - CASE TRUNC(SYSDATE) - TRUNC(SYSDATE, 'IW')
                   WHEN 0 THEN 3
                   WHEN 6 THEN 2
                   ELSE        1
                   END
THEN
  -- Do something
  NULL;
END IF;

TRUNC(date_value) - TRUNC(date_value, 'IW')将计算自 ISO 周开始以来的天数(通常是星期一的午夜)。

注意:不要在国际环境中使用TO_CHAR(date_value, 'D') ,因为它会根据您在哪个国家/地区运行它给出不同的结果(孟加拉国从周五开始,一些中东国家从周六开始,周日开始在美国和欧洲大部分地区的星期一)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM