Era viernes y ya es sábado

14/06/2008 - 01:18 por David | Informe spam
Microsoft SQL Server 200


Muy buenas, llevo horas y ya ha pasado el viernes y estamos a sábado (que
pesadilla)

¿Cómo insertar fechas que sean VIERNES o SÁBADOS, dado un periodo definido
por FechaInicial y FechaFinal?

Dadas dos fechas: FechaInicio y FechaFinal que definen un periodo insertas
las fechas que sean Viernes o Sábados



INSERT INTO festivos

(fecha)

VALUES

NI IDEA

where
datediff(dd,FechaInicial,FechaFinal) > 4 or
(datepart(dw,FechaInicial)+@@datefirst)%7 >
(datepart(dw,FechaFinal)+@@datefirst)%7 or
(datepart(dw,FechaInicial)+@@datefirst)%7 = 0 or
(datepart(dw,FechaFinal)+@@datefirst)%7 = 6

Reconozco que no se por donde tirar, la condición de VIERNES o SÁBADO está
ahí pero ¿Cómo insertar las puñeteras fechas?

En fin cualquier aportación será bienvenida.

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
14/06/2008 - 12:24 | Informe spam
Hola David,

Mira mi respuesta en el hilo que tu has decidido
que se tiene que llamar 'Sin rodeos: ni puta idea.' :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Maxi Accotto
14/06/2008 - 15:35 | Informe spam
Hola, vas a tener que usar o un while o un cursor para ir fecha a fecha y
saber si es viernes o sabado.
Otra opcion que tengas una tabla de fechas (yo en mis sistemas siempre trato
de tener una) y desde ahi si hagas la query


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"David" escribió en el mensaje de
noticias:
Microsoft SQL Server 200


Muy buenas, llevo horas y ya ha pasado el viernes y estamos a sábado (que
pesadilla)

¿Cómo insertar fechas que sean VIERNES o SÁBADOS, dado un periodo definido
por FechaInicial y FechaFinal?

Dadas dos fechas: FechaInicio y FechaFinal que definen un periodo insertas
las fechas que sean Viernes o Sábados



INSERT INTO festivos

(fecha)

VALUES

NI IDEA

where
datediff(dd,FechaInicial,FechaFinal) > 4 or
(datepart(dw,FechaInicial)+@@datefirst)%7 >
(datepart(dw,FechaFinal)+@@datefirst)%7 or
(datepart(dw,FechaInicial)+@@datefirst)%7 = 0 or
(datepart(dw,FechaFinal)+@@datefirst)%7 = 6

Reconozco que no se por donde tirar, la condición de VIERNES o SÁBADO está
ahí pero ¿Cómo insertar las puñeteras fechas?

En fin cualquier aportación será bienvenida.




Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
15/06/2008 - 12:16 | Informe spam
Hola David,

Repito aquí la reacción que he puesto en el otro hilo, porque me
parece que los servidores de microsoft filtran 'cierto término' que
has utilizado al renombrar el hilo.


On 14 jun, 01:18, "David" wrote:
Microsoft SQL Server 200

Muy buenas, llevo horas y ya ha pasado el viernes y estamos a sábado (que
pesadilla)

¿Cómo insertar fechas que sean VIERNES o SÁBADOS, dado un periodo definido
por FechaInicial y FechaFinal?

Dadas dos fechas: FechaInicio y FechaFinal que definen un periodo insertas
las fechas que sean Viernes o Sábados

INSERT INTO festivos

(fecha)

VALUES

NI IDEA

where
  datediff(dd,FechaInicial,FechaFinal) > 4 or
  (datepart(dw,FechaInicial)+@@datefirst)%7 >
  (datepart(dw,FechaFinal)+@@datefirst)%7 or
  (datepart(dw,FechaInicial)+@@datefirst)%7 = 0 or
  (datepart(dw,FechaFinal)+@@datefirst)%7 = 6

Reconozco que no se por donde tirar, la condición de VIERNES o SÁBADO está
ahí pero ¿Cómo insertar las puñeteras fechas?

En fin cualquier aportación será bienvenida.



Me parece que no nos hemos comunicado muy bien.

La pregunta original era:
"Contiene un periodo dado al menos un viernes o sábado?"
Con las posibles respuestas Si o No.
Este es el problema que yo he tratado de solucionar.

Otra pregunta muy distinta es:
"Dado un periodo, devolver una lista con todas las fechas en ese
periodo que sean viernes o sábado?"
La respuesta a esta pregunta es una tabla con fechas que es la
que estás tratando de intruducir en la tabla 'festivos'.

Por ejemplo:
Dado el periodo 14/6/2008 - 30/6/2008, quieres generar la tabla:

14/6/2008
20/6/2008
21/6/2008
27/6/2008
28/6/2008

Que a su vez son las fechas que quieres introducir en la tabla
'festivos'.

Te estoy entendiendo bien ahora?

Mira en este hilo:
http://groups.google.com/group/micr...6db2e460c#

Ahí tienes una función Fechas() que puedes utilizar así:
(con el periodo ejemplo dado arriba)

insert into festivos (fecha)
select Fecha
from dbo.Fechas('20080614','20080630')
where diasemana in (0,6)

Si tienes periodos muy largos podrías utilizar esa función como
base para hacer tu otra más específica, que genere solo los
viernes y los sábados.

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 David
15/06/2008 - 14:14 | Informe spam
Gracias, efectivamente el principio era saber si en un periodo de fechas
algún día caía en viernes y sábado, posteriormente me ví en la necesidad de
insertar los viernes y sábados comprendidos entre un intervalo de fechas.

Sólo puedo decir una cosa: MUCHÍSIMAS GRACIAS.

Nota: ciertamente el analizador sintáctico me bloqueó por lo de n.p.i.
Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
15/06/2008 - 14:40 | Informe spam
On 15 jun, 14:14, "David" wrote:

Sólo puedo decir una cosa: MUCHÍSIMAS GRACIAS.




De nada. Encantado.

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