[英]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.