09/11/2006, 10:40
|
| | | Fecha de Ingreso: febrero-2005 Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 19 años, 11 meses Puntos: 1 | |
Restar días+conflicto con meses Hola ... antes que nada tengo que aclarar que no trabajé jamás con SQL Server ... toda mi experiencia se limita a PHP MySQL ...
Tengo que hacer un módulo en PowerBuilder y una base SQL para calcular y mostrar los cumpleaños de usuarios del sistema 3 días atrás de hoy y 6 días adelante ... hasta allí todo bien ... el problema es en el límite del mes ... no encuentro el modo de hacerlo ... en MySQL tenés la función DATE_FORMAT que te trae la parte que quieras de la fecha en formato fecha ... o sea podés comparar fecha con fecha (mm/dd) ... pero no encuentro como hacerlo ... copoio mi código para las búsquedas del día actual y para las búsquedas de mes atrás y mes adelante ... espero me puedan dar una mano ...
Código:
// CUMPLEN AÑOS HOY
SELECT dat_invar.legajo,
dat_invar.fecha_nacim,
leg.legajo,
leg.apellidos,
leg.nombres,
m_rubros.cod_rubro,
m_rubros.nom_rubro
FROM dat_invar,
leg, dat_pers LEFT JOIN m_rubros ON dat_pers.cod_prof = m_rubros.cod_rubro
WHERE ( leg.legajo = dat_invar.legajo ) and
( leg.legajo = dat_pers.legajo )
and
( ( leg.nivel = 'P' ) OR
( leg.nivel = 'D' ))
and ( MONTH(dat_invar.fecha_nacim) = MONTH(getDate()) and
DAY(dat_invar.fecha_nacim) = DAY(getDate())) AND
leg.status = 'A'
ORDER BY leg.apellidos ASC,
leg.nombres ASC
Código:
// MES ANTERIOR O SIGUIENTE :ret_mes es una variable
SELECT dat_invar.legajo,
dat_invar.fecha_nacim,
leg.legajo,
leg.apellidos,
leg.nombres,
m_rubros.cod_rubro,
m_rubros.nom_rubro
FROM dat_invar,
leg, dat_pers LEFT JOIN m_rubros ON dat_pers.cod_prof = m_rubros.cod_rubro
WHERE ( leg.legajo = dat_invar.legajo ) and
( leg.legajo = dat_pers.legajo )
and
( ( leg.nivel = 'P' ) OR
( leg.nivel = 'D' )) AND
(MONTH(dat_invar.fecha_nacim) = MONTH(DATEADD ( MONTH , :ret_mes, getDate() ))) AND leg.status = 'A'
ORDER BY DAY(dat_invar.fecha_nacim) ASC, leg.apellidos ASC, leg.nombres ASC
Gracias desde ya
__________________ JuanPQUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE |