Función para el Cálculo de Días Laborables en Transact-SQL
Escenario
Para análisis estadísticos es necesario implementar en T-SQL de MS SQL 2000 una función para el cálculo de días laborables entre dos fechas.
Se consideran días Laborables de Lunes a Viernes (de ahora en adelante DIA.LAB) y Fin de Semana Sábado y Domingo (de ahora en adelante FinDe)
Procedimiento
Definimos una función en T-SQL para contabilizar los días laborables atendiendo a los siguientes casos:
- Acceder al servidor MS SQL 2000 con permisos necesarios al menos para ejecutar CREATE FUNCTION
- Comprobamos que el primer día de la semana es lunes, para ello ejecutamos select @@DATEFIRST el valor debe ser 1
- Definimos una función atendiendo a los siguientes casos:
- Fecha Inicio y Fecha Fin en FinDe
- Fecha Inicio DIA.LAB y Fecha Fin FinDe
- Fecha Inicio FinDe y Fecha Fin en FinDe
- Fecha Inicio y Fecha Fin en DIA.LAB
Utilizamos el siguiente código
|
CREATE function fBusinessDays (@start datetime, @end datetime) DECLARE @wks as int, @LabDays as int — Cálculo de Semanas /* Primero calculamos las semanas entre 2 fechas atendiendo a los siguientes casos:
*/ SET @wks = CASE /* Primero calculamos el número de días DIA.LAB en función de los siguientes casos:
*/
SET @LabDays = return( @LabDays) |
Enlaces de Interés
Para consultar el manejo del lenguaje consultar Transact-SQL Reference

excelete dato
funciona OK
gracias
etragu dijo esto en Martes, 24 Junio 2008 a 14:29 |