Tema: Date Time !!
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/02/2010, 16:03
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: Date Time !!

Cita:
case when month(fecha)<=month(getdate()) AND day(fecha)<=day(getdate())
T3rryMan
Estás cometiendo un error de lógica clásico. Al comparar por separado los meses y los días, te olvidas que un día mayor que el día actual puede pertenecer a una fecha menor. El 1 de junio sigue siendo mayor que el 31 de enero. No debes compararlos por separado. El resultado correcto puedes obtenerlo con:

Código SQL:
Ver original
  1. CASE
  2. WHEN RIGHT(CONVERT(VARCHAR(8), td.dt, 112), 4) <=
  3. RIGHT(CONVERT(VARCHAR(8), getdate(), 112), 4) THEN ...
  4.  
  5. --O usando las funciones que originalmente consideraste
  6. CASE
  7. WHEN (MONTH(fecha) * 100) + DAY(fecha) <=
  8. (MONTH(getdate()) * 100) + DAY(getdate()) THEN ...

Saludos.