Calcule las horas basadas en las horas comerciales en Oracle SQL
en Oracle SQL, calcular las horas entre dos períodos de tiempo puede ser sencillo. Sin embargo, si necesita tener en cuenta el horario comercial, el cálculo se vuelve más complejo.
Especificación de horario comercial
Los horarios comerciales proporcionados son de lunes a sábado de 8:00 AM a las 6:00 pm. Para incorporar estas horas en el cálculo, puede usar una combinación de manipulación de fecha y lógica condicional.
sql consuly
La siguiente consulta SQL proporciona una solución para calcular horas calculando horas calculadoras Basado en el horario comercial especificado:
SELECT task, start_time, end_time, ROUND( ( -- Calculate the full weeks difference from the start of ISO weeks. ( TRUNC( end_time, 'IW' ) - TRUNC( start_time, 'IW' ) ) * (10/24) * (6/7) -- Add the full days for the final week. LEAST( TRUNC( end_time ) - TRUNC( end_time, 'IW' ), 6 ) * (10/24) -- Subtract the full days from the days of the week before the start date. - LEAST( TRUNC( start_time ) - TRUNC( start_time, 'IW' ), 6 ) * (10/24) -- Add the hours of the final day LEAST( GREATEST( end_time - TRUNC( end_time ) - 8/24, 0 ), 10/24 ) -- Subtract the hours of the day before the range starts. - LEAST( GREATEST( start_time - TRUNC( start_time ) - 8/24, 0 ), 10/24 ) ) -- Multiply to give minutes rather than fractions of full days. * 24, 15 -- Number of decimal places ) AS work_day_hours_diff FROM your_table;
explicación
muestra datos y salida
con los datos de muestra proporcionados:
TASK | START_TIME | END_TIME A | 16-JAN-17 10:00 | 23-JAN-17 11:35 B | 18-JAN-17 17:53 | 19-JAN-17 08:00 C | 13-JAN-17 13:00 | 17-JAN-17 14:52 D | 21-JAN-17 10:00 | 30-JAN-17 08:52
La consulta genera los siguientes resultados:
tarea | start_time | ] End_time | work_day_hours_diff |
---|---|---|---|
a | 2017-01-16 10:00:00 (mon) | 2017-01-23 11:35:00 (mon) | 61.583333333333333333 |
b | 2017-01-18 17:53: 00 (wise)2017-01-19 08:00:00 (thu) | . 116666666666667 | |
] 2017-01-13 13:00:00 (fri) | 2017-01-17 14:52:00 (mari ] D | 2017-01-21 10:00:00 (sat) | 2017-01-30 08:52:00 (lon) |
Estos resultados reflejan con precisión el número de horas de trabajo en función de las horas de negocios especificadas. |
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3