Días hábiles en sql
De esta forma ya tengo un número que será el límite, y al cual únicamente le restare los Sábados yDomingos que se encuentren dentro de ese intervalo de tiempo para ello veo de esta forma:
SQL Server script
SET DATEFORMAT dmy
DECLARE @Fecha_inicial DATETIME = '02/02/2012'
DECLARE @Fecha_finalDATETIME = '2/03/2012'
DECLARE @Dias_trancurridos INT = 0
SET @Dias_trancurridos = DATEDIFF(DAY, @Fecha_inicial, @Fecha_final + 1)
Ahora ya tenemos el número de días naturales que hantranscurrido a partir de la fecha inicial hasta la fecha final.
Ahora debemos tener el panorama que de que nos están pidiendo contabilizar los días hábiles, por lo tanto debemos suponer que la capturadel día inicial y el final será únicamente en un día hábil; esto nos ayuda demasiado porque podemos adelantar el día inicial al próximo Lunes y el día final lo podemos atrasar al Domingo anteriorDECLARE @Fecha_inicial_recorrida DATETIME = @Fecha_inicial
DECLARE @Fecha_final_recorrida DATETIME
DECLARE @Fecha_recorrida BIT = 0
IF (DATEPART(WEEKDAY, @Fecha_inicial) != 1)
BEGIN
SET@Fecha_inicial_recorrida = @Fecha_inicial + (8 - DATEPART ( WEEKDAY , @Fecha_inicial))
SET @Fecha_recorrida = 1
END
SET @Fecha_final_recorrida = @Fecha_final - DATEPART ( WEEKDAY ,@Fecha_final)
Una vez que recorrimos las fechas ahora si al obtener la diferencia de las fechas recorridas y dividirlo entre 7 que son los días que tiene la semana, nos devuelve el numero de fines de semana queexiste dentro de esas fechas, recurrimos a una variable tipo bit que nos indica si la fecha inicial fue recorrida, en este caso si fue recorrida entonces tenemos que aumentar un fin de semana mas....
Regístrate para leer el documento completo.