Oracle计算两个时间的工作日
时间: 2023-07-30 21:11:40 浏览: 97
Oracle计算两个时间的工作日可以使用以下语句:
```sql
SELECT COUNT(*)
FROM (
SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') + LEVEL - 1 AS d
FROM dual
CONNECT BY LEVEL <= TO_DATE('2022-12-31', 'YYYY-MM-DD') - TO_DATE('2022-01-01', 'YYYY-MM-DD') + 1
)
WHERE d BETWEEN TO_DATE('2022-01-01 09:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('2022-01-03 18:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND TO_CHAR(d, 'DY', 'NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN');
```
其中,`TO_DATE('2022-01-01', 'YYYY-MM-DD')`和`TO_DATE('2022-12-31', 'YYYY-MM-DD')`分别代表起始日期和截止日期。`TO_DATE('2022-01-01 09:00:00', 'YYYY-MM-DD HH24:MI:SS')`和`TO_DATE('2022-01-03 18:00:00', 'YYYY-MM-DD HH24:MI:SS')`分别代表开始时间和结束时间。`TO_CHAR(d, 'DY', 'NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')`则用于排除周六和周日。
该语句的输出结果为两个时间之间的工作日数。
阅读全文