如何查找花费的总工作日或总工作小时



我正在寻求帮助以找到;总工作日";以及";总工作时间";在两个日期之间花费;Start_Date和End_Date。到目前为止,我只能找到两次约会之间的总时间,不包括周末。然后我将总小时数转换为天(除以24(。

今后,我需要将公共假日(如感恩节、圣诞节等(纳入其中。此外,我如何计算总工作时间(假设工作时间为上午8点至下午5点(,而不是工作天数?

我的导师给了我一个";家庭作业;使用"sequence"来查找工作日总数,但我似乎找不到。我也不确定"sequency"是要使用的实际语法,还是只是用于在线搜索的关键字。

总之,需要您的指导才能找到以下内容:

  • 查找不使用date_diff 的总工作日

  • 查找的总工作时间

  • 如何纳入公共假日

我的编码如下:

(DATE_DIFF('hour', start_date, end_date) - (DATE_DIFF('week',start_date, end_date)*2 * 24) - ((CASE WHEN DAY_OF_WEEK(start_date) > 5 THEN 1 ELSE 0 END) * 24) - ((CASE WHEN DAY_OF_WEEK(end_date) > 5 THEN 1 ELSE 0 END) * 24)) / 24.0 AS workday_spent

谢谢你的帮助!

在此处搜索sequence:https://prestodb.io/docs/current/functions/array.html

以下是对我有效的查询:

select count(*) as working_days, count(*)*8 as working_hours
from unnest(sequence(start_date, end_date)) t(d) 
where day_of_week(d) not in (6, 7);

公共假期:

select count(*) as working_days, count(*)*8 as working_hours
from unnest(sequence(start_date, end_date)) t(d) 
where day_of_week(d) not in (6, 7);
and d not in (select d from public_holidays);

正在进行的查询:

presto> select count(*) from unnest(sequence(cast('2020-01-01' as date), cast('2020-12-31' as date))) t(d) where day_of_week(d) not in (6, 7);
_col0
-------
262
(1 row)

相关内容

  • 没有找到相关文章

最新更新