oracle 查询两个日期的工作日的天数
时间: 2023-12-01 14:03:06 浏览: 128
在Oracle中,可以使用以下语句查询两个日期之间的工作日天数:
```sql
SELECT COUNT(*) AS workdays
FROM (
SELECT TRUNC(start_date) + LEVEL - 1 AS day
FROM dual
CONNECT BY LEVEL <= TRUNC(end_date) - TRUNC(start_date) + 1
)
WHERE TO_CHAR(day, 'D') <= 5;
```
其中,`start_date` 和 `end_date` 分别是要查询的两个日期。这个语句使用了一个子查询来生成两个日期之间的所有日期,然后使用 `TO_CHAR` 函数将日期转换为星期几,然后筛选出工作日(星期一至星期五)并计算它们的数量。
相关问题
oracle计算工作日天数
你可以使用 Oracle 中的工作日计算函数来计算工作日天数。Oracle 提供了 `NETWORK_DAYS` 函数来计算两个日期之间的工作日天数。该函数的语法如下:
```
NETWORK_DAYS(start_date, end_date, [holiday_list])
```
其中,`start_date` 和 `end_date` 是要计算工作日的起始日期和结束日期,而 `holiday_list` 是可选的节假日列表。
以下是一个示例,演示如何使用 `NETWORK_DAYS` 函数来计算工作日天数:
```sql
SELECT NETWORK_DAYS(DATE '2022-01-01', DATE '2022-01-31') AS workdays
FROM dual;
```
上述查询将返回 23,表示从 2022 年 1 月 1 日到 2022 年 1 月 31 日之间有 23 个工作日。
注意:需要根据实际情况自定义节假日列表,以便正确计算工作日天数。
阅读全文