Fecha

15/11/2004 - 20:05 por Julio | Informe spam
Hola Grupo

Como puedo a la fecha actual sumarle 3 dias sin contar los fines de semana

Select getdate() + 3 sin fin de semana

Preguntas similare

Leer las respuestas

#1 ulises
15/11/2004 - 21:32 | Informe spam
Te podría servir algo como :

CREATE FUNCTION dbo.diamastres ( @fecha datetime )
RETURNS datetime
AS
BEGIN
DECLARE @diasemana int
DECLARE @fechamastres datetime
SET @diasemana = ( DATEPART(weekday,@fecha) + @@DATEFIRST -
1 ) % 7
IF @diasemana + 3 >= 6
SET @fechamastres = DATEADD(day,5,@fecha)
ELSE
SET @fechamastres = DATEADD(day,3,@fecha)
RETURN(@fechamastres)
END

pero no consistencia que el valor ingresado no sea un
sábado o domingo, si eso deseas deberás incluirlo.

Saludos,
Ulises

Hola Grupo

Como puedo a la fecha actual sumarle 3 dias sin contar los


fines de semana

Select getdate() + 3 sin fin de semana


.

Respuesta Responder a este mensaje
#2 Julio
15/11/2004 - 22:05 | Informe spam
Gracias Ulises
"ulises" wrote in message
news:0ea001c4cb52$3ffc1b60$
Te podría servir algo como :

CREATE FUNCTION dbo.diamastres ( @fecha datetime )
RETURNS datetime
AS
BEGIN
DECLARE @diasemana int
DECLARE @fechamastres datetime
SET @diasemana = ( DATEPART(weekday,@fecha) + @@DATEFIRST -
1 ) % 7
IF @diasemana + 3 >= 6
SET @fechamastres = DATEADD(day,5,@fecha)
ELSE
SET @fechamastres = DATEADD(day,3,@fecha)
RETURN(@fechamastres)
END

pero no consistencia que el valor ingresado no sea un
sábado o domingo, si eso deseas deberás incluirlo.

Saludos,
Ulises

Hola Grupo

Como puedo a la fecha actual sumarle 3 dias sin contar los


fines de semana

Select getdate() + 3 sin fin de semana


.

Respuesta Responder a este mensaje
#3 Julio
16/11/2004 - 12:47 | Informe spam
Saludos, Estuve realizando prueba con el código y observo que cuando la
fecha supera dos semana el solo asume un solo sábado y domingo.

Es decir si yo hoy martes 16 / 2004 se digo que con diferencia de 10 días,
debería de caer el día 30 sin embargo trae la fecha del 28



Es solo una observación, pero quería saber por si en el futuro se presenta
algo como esto de tener que agregar más de 10 días



Gracias




"ulises" wrote in message
news:0ea001c4cb52$3ffc1b60$
Te podría servir algo como :

CREATE FUNCTION dbo.diamastres ( @fecha datetime )
RETURNS datetime
AS
BEGIN
DECLARE @diasemana int
DECLARE @fechamastres datetime
SET @diasemana = ( DATEPART(weekday,@fecha) + @@DATEFIRST -
1 ) % 7
IF @diasemana + 3 >= 6
SET @fechamastres = DATEADD(day,5,@fecha)
ELSE
SET @fechamastres = DATEADD(day,3,@fecha)
RETURN(@fechamastres)
END

pero no consistencia que el valor ingresado no sea un
sábado o domingo, si eso deseas deberás incluirlo.

Saludos,
Ulises

Hola Grupo

Como puedo a la fecha actual sumarle 3 dias sin contar los


fines de semana

Select getdate() + 3 sin fin de semana


.

Respuesta Responder a este mensaje
#4 ulises
16/11/2004 - 14:30 | Informe spam
La función solo contempla lo que pediste inicialmente :
"sumar tres días", si deseas sumar un número mayor tendrías
que modificarlo, algunas ideas:
- primero del número de días que deseas sumar tendrías que
obtener el módulo a 7 suma ese día en lugar de tres
- segundo, del número de días que deseas sumar dividirlo
entre 7, ese número multiplicarlo por 2 y sumarlo también.

Saludos,
Ulises

Saludos, Estuve realizando prueba con el código y observo


que cuando la
fecha supera dos semana el solo asume un solo sábado y


domingo.

Es decir si yo hoy martes 16 / 2004 se digo que con


diferencia de 10 días,
debería de caer el día 30 sin embargo trae la fecha del 28



Es solo una observación, pero quería saber por si en el


futuro se presenta
algo como esto de tener que agregar más de 10 días



Gracias




"ulises" wrote in message
news:0ea001c4cb52$3ffc1b60$
Te podría servir algo como :

CREATE FUNCTION dbo.diamastres ( @fecha datetime )
RETURNS datetime
AS
BEGIN
DECLARE @diasemana int
DECLARE @fechamastres datetime
SET @diasemana = ( DATEPART(weekday,@fecha) + @@DATEFIRST -
1 ) % 7
IF @diasemana + 3 >= 6
SET @fechamastres = DATEADD(day,5,@fecha)
ELSE
SET @fechamastres = DATEADD(day,3,@fecha)
RETURN(@fechamastres)
END

pero no consistencia que el valor ingresado no sea un
sábado o domingo, si eso deseas deberás incluirlo.

Saludos,
Ulises

Hola Grupo

Como puedo a la fecha actual sumarle 3 dias sin contar los


fines de semana

Select getdate() + 3 sin fin de semana


.





.

Respuesta Responder a este mensaje
#5 Javier Loria
16/11/2004 - 15:24 | Informe spam
Hola:
Este es un viejo posteo, prueba a ver si te funciona:
Espero te sirva esta funcion definida de usuario:
CREATE FUNCTION dbo.DiasLaborales
( @FechaInicio datetime,
@FechaFinal datetime )
RETURNS INT
AS
BEGIN
IF (DATEPART(dw,@FechaInicio)=7)
BEGIN
SET @FechaInicioÚTEADD(dd,-1,@FechaInicio)
END
IF (DATEPART(dw,@FechaFinal)=7)
BEGIN
SET @FechaFinalÚTEADD(dd,-1,@FechaFinal)
END
RETURN
DATEDIFF(dd,@FechaInicio,@FechaFinal)
-(DATEDIFF(ww,
DATEADD(dd,7-DATEPART(dw,@FechaInicio), @FechaInicio),
DATEADD(dd,7-DATEPART(dw,@FechaFinal ), @FechaFinal))
*2)
END
Es una "traduccion" a SQL de un viejo algoritmo de C++ que usaba hace
anos, podrias revisarla bien, haciendo pruebas con muchas fechas, para ver
si te brinda los resultados deseados, tambien podrias restar lor feriados.
Si pudes cambiar tus tablas considera la posiblidad de en lugar de
contar con una tabla de festivos considera la posibilidad de tener una tabla
con TODOS los dias, y con una columna DiaHabil igual a 1 cuando lo sea y 0
para Fines de Semana o Festivos
En mi opinion es mejor idea la tabla de Dias con la columna de DiaHabil
y luego hacer un COUNT de los que tengan DiaHabil en 1, esto es mas
"extendible" ya que te permite incluir algunos dias no habiles feriados. Si
es algo que te gustaria hacer puedo copiarte el codigo.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Julio" wrote in message
news:
Saludos, Estuve realizando prueba con el código y observo que cuando la
fecha supera dos semana el solo asume un solo sábado y domingo.

Es decir si yo hoy martes 16 / 2004 se digo que con diferencia de 10 días,
debería de caer el día 30 sin embargo trae la fecha del 28



Es solo una observación, pero quería saber por si en el futuro se presenta
algo como esto de tener que agregar más de 10 días



Gracias




"ulises" wrote in message
news:0ea001c4cb52$3ffc1b60$
Te podría servir algo como :

CREATE FUNCTION dbo.diamastres ( @fecha datetime )
RETURNS datetime
AS
BEGIN
DECLARE @diasemana int
DECLARE @fechamastres datetime
SET @diasemana = ( DATEPART(weekday,@fecha) + @@DATEFIRST -
1 ) % 7
IF @diasemana + 3 >= 6
SET @fechamastres = DATEADD(day,5,@fecha)
ELSE
SET @fechamastres = DATEADD(day,3,@fecha)
RETURN(@fechamastres)
END

pero no consistencia que el valor ingresado no sea un
sábado o domingo, si eso deseas deberás incluirlo.

Saludos,
Ulises

>Hola Grupo
>
>Como puedo a la fecha actual sumarle 3 dias sin contar los
fines de semana
>
>Select getdate() + 3 sin fin de semana
>
>
>.
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida