在 Oracle SQL 中计算营业时间
处理涉及时间间隔的数据时,通常需要考虑营业时间才能准确计算营业时间指定时间之间。在 Oracle SQL 中,您可以通过利用日期函数和数学计算的组合来实现此目的。
用营业时间计算时间
计算不同时间之间的小时数差异根据营业时间开始和结束时间,您可以按照以下步骤操作:
1.将时间段转换为全天:
2。处理最后一天内的小时数:
3。乘以转换为分钟:
示例查询:
SELECT task, start_time, end_time, ROUND( ( -- Calculate full weeks difference ( TRUNC( end_time, 'IW' ) - TRUNC( start_time, 'IW' ) ) * (10/24) * (6/7) -- Add full days for final week + LEAST( TRUNC( end_time ) - TRUNC( end_time, 'IW' ), 6 ) * (10/24) -- Subtract full days before start date - LEAST( TRUNC( start_time ) - TRUNC( start_time, 'IW' ), 6 ) * (10/24) -- Add hours of final day + LEAST( GREATEST( end_time - TRUNC( end_time ) - 8/24, 0 ), 10/24 ) -- Subtract hours of day before range starts - LEAST( GREATEST( start_time - TRUNC( start_time ) - 8/24, 0 ), 10/24 ) ) -- Multiply to convert to minutes * 24, 15 -- Number of decimal places ) AS work_day_hours_diff FROM your_table;
此查询基于所提供样本数据的工作时间,考虑到周末时间。
以上是如何在Oracle SQL中计算两个时间之间的营业时间?的详细内容。更多信息请关注PHP中文网其他相关文章!