有谁知道如何计算两个日期字段之间的工作日数?我正在使用oracle sql开发人员。我需要找到多个开始日期和结束日期之间平日的平均值。因此,我需要获取每条记录的天数,以便对它们进行平均。这可以在SELECT查询的一部分中完成吗?
SELECT
这个答案类似于Nicholas的答案,这并不奇怪,因为您需要一个带有a的子查询以CONNECT BY分出日期列表。然后可以在检查星期几的同时对日期进行计数。此处的区别在于,它显示了如何在结果的每一行中获取工作日计数值:
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
计数包含在内,表示包含FromDate和ThruDate。该查询假设您的日期没有时间成分;如果需要,TRUNC则需要子查询中的日期列。
FromDate
ThruDate
TRUNC