Ed *_*bbs 10
这个答案类似于Nicholas的,这并不奇怪,因为你需要一个子查询CONNECT BY
来分析日期列表.然后可以在检查星期几时计算日期.这里的不同之处在于它显示了如何在结果的每一行获得工作日计数值:
SELECT
FromDate,
ThruDate,
(SELECT COUNT(*)
FROM DUAL
WHERE TO_CHAR(FromDate + LEVEL - 1, 'DY') NOT IN ('SAT', 'SUN')
CONNECT BY LEVEL <= ThruDate - FromDate + 1
) AS Weekday_Count
FROM myTable
Run Code Online (Sandbox Code Playgroud)
计数是包容性的,意味着它包括FromDate
和ThruDate
.此查询假定您的日期没有时间组件; 如果他们这样做,您将需要TRUNC
子查询中的日期列.