gpt4 book ai didi

google-bigquery - 给定两个时间戳,计算这些日期之间经过的工作小时数

转载 作者:行者123 更新时间:2023-12-04 14:37:59 24 4
gpt4 key购买 nike

给定表中的两个时间戳 start_time, end_time计算它们之间发生的总工作时间。

工作时间在您选择的单独表格中定义。

最佳答案

假设您有一个工作时间表,这里是 Snowflake SQL 中的解决方案:

select
t.id
, sum(datediff(‘second’,
-- calculate the max of the two start time
(case when t.start <=
w.working_day_start_timestamp
then w.working_day_start_timestamp
else t.start
end),
-- calculate the min of the two end times
(case when t.end >=
w.working_day_end_timestamp
then w.working_day_end_timestamp
else t.end
end)
)) / 3600 -- convert to hourly
as working_hour_diff
from
working_days_times w,
cross join time_intervals t
where -- select all intersecting intervals
(
t.start <= w.working_day_end_timestamp
and
t.end >= w.working_day_start_timestamp
)
and -- select only working days
w.is_working_day
group by
t.id
这是一篇文章,详细介绍了在 SQL 中和作为雪花中的 Javascript UDF 实现这一点的更多细节:
https://medium.com/dandy-engineering-blog/how-to-calculate-the-number-of-working-hours-between-two-timestamps-in-sql-b5696de66e51

关于google-bigquery - 给定两个时间戳,计算这些日期之间经过的工作小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com