Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

dias festivos entre fechas

Estas en el tema de dias festivos entre fechas en el foro de SQL Server en Foros del Web. hola a todos. tengo un query para extraer los dias feriados que hay entre dos fechas. tengo la tabla swnomfie que tiene las fechas y ...
  #1 (permalink)  
Antiguo 20/05/2011, 08:09
Avatar de cesarcaes  
Fecha de Ingreso: marzo-2010
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 1
dias festivos entre fechas

hola a todos.
tengo un query para extraer los dias feriados que hay entre dos fechas. tengo la tabla swnomfie que tiene las fechas y un campo en donde dice que si es feriado o no con 1 o 0

esta es el query:

select SUM(DIAFIESTA) from swnomfie where DFECHA BETWEEN '12-12-2010' AND '2-12-2011'

me retorna 109.

decfecha es un campo de la tabla. y en el calendario que tengo no es real esa cantidad de dias feriados.
  #2 (permalink)  
Antiguo 20/05/2011, 08:17
Avatar de cesarcaes  
Fecha de Ingreso: marzo-2010
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: dias festivos entre fechas

listo ya resolvi. tenia un error en el formato, de fechas tenia el mes de diciembre.
  #3 (permalink)  
Antiguo 20/05/2011, 10:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: dias festivos entre fechas

Hola cesarcaes:

Evita problemas con el formato de fecha utilizando el estándar ANSI
(yyyymmdd HH:mi:ss), te aseguro que te quitará muchos posibles dolores de cabeza.

Checa está liga

http://www.mug.org.ar/SQL/ArticSQL/240.aspx

Ahí se explican algunas de la razones por la que es recomendable siempre utilizar el formato ANSI, creo que te puede interesar.

saludos
Leo.
  #4 (permalink)  
Antiguo 23/05/2011, 07:15
Avatar de cesarcaes  
Fecha de Ingreso: marzo-2010
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: dias festivos entre fechas

hola jose. tengo el mismo problema.
no encuentro como relacionar los valores de las dos tablas. ya que no tiene campo para relacionarlos.

mira esta senetecia:


SELECT SWNOMFIE.DES_FIE, SWNOMFIE.DFECHA,
SWNOMFIE.DIAFIESTA,
case when DFECHA >= '01/01/2011' AND DFECHA <= '31/01/2011' then SUM(DIAFIESTA) else 0 end case_when_DFECHA_AND_DFEC
FROM SWNOMMSSQL.dbo.SWNOMFIE SWNOMFIE
GROUP BY SWNOMFIE.DES_FIE, SWNOMFIE.DFECHA,
SWNOMFIE.DIAFIESTA


me da 0 en dias feriados. en la sentencia case
  #5 (permalink)  
Antiguo 23/05/2011, 08:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: dias festivos entre fechas

Hola de nuevo cesarcaes:

tal como te mencioné en el post, lo ideal es que manejes la fecha siempre en formato ANSI (yyyymmdd hh:mi:ss) que es la manera por defecto en que SQL Server y la mayoría de los motores de BD manejan las fechas. Además hay otro detalle que tienes que considerar y es el hecho de que si el campo donde estás almacenando la fecha es datetime entonces también tienes qué considerar la hora. tu consulta quedaría entonces de la siguiente manera:

Código SQL:
Ver original
  1. SELECT SWNOMFIE.DES_FIE, SWNOMFIE.DFECHA,
  2. SWNOMFIE.DIAFIESTA,
  3. CASE WHEN
  4. DFECHA >= '2011-01-01 00:00:00' AND
  5. DFECHA <= '2011-01-31 23:59:59' THEN SUM(DIAFIESTA) ELSE 0 END case_when_DFECHA_AND_DFEC
  6. FROM SWNOMMSSQL.dbo.SWNOMFIE SWNOMFIE
  7. GROUP BY SWNOMFIE.DES_FIE, SWNOMFIE.DFECHA,
  8. SWNOMFIE.DIAFIESTA

Observa que también estoy considerando la hora, desde el primer segundo de la fecha inicial hasta el último segundo de la fecha final.

Haz la prueba y nos comentas.
  #6 (permalink)  
Antiguo 23/05/2011, 11:31
Avatar de cesarcaes  
Fecha de Ingreso: marzo-2010
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: dias festivos entre fechas

hola jose.


mira la consulta que de facilitaste funciona perfecto.

el problema que tengo ahora es que las dos fechas del rango me las tengo que traer de otra tabla y no encuentro la manera de relacionarlas ya que o tienenn campo en comun. solo la fecha. y si lo relaciono con la fecha se posiciona en una sola fila.

la tabla swnomfie tiene en cada fila cada una de las fechas y en unos de sus campos tiene 1 si es festivo y 0 si n lo es.
oseq swnomfie tiene el calendario completo.

ya tengo los dias feriados, pero cuando lo relaciono con otra tabla solo se posiciona en una sola ficha.
  #7 (permalink)  
Antiguo 23/05/2011, 15:25
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: dias festivos entre fechas

Hola de nuevo cesarcaes:

No entiendo cómo es que pretendes unir las tablas si no existe algún campo en común... en primer lugar sería conveniente que nos dijeras cuál es la estructura de tu tablas, que nos pongas algunos datos de ejemplo en cada tabla y que nos indiques qué es lo que necesitas de salida. Con esta información será más fácil tratar de ayudarte.

Saludos
Leo.

Etiquetas: dias, fechas, festivos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.