Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/06/2009, 09:48
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: Consulta Fechas

Para traerte los registros que cumplen hoy si es cualquier día de la semana excepto sábado y domingo, y traerte los que cumplen el domingo dos días antes, y los que lo hace el sábado un día antes:
En el select hay datos que no sé si querrás mostrar, pero que quiero que veas. Te traerá un texto distinto si es que cumple el sábado o el domingo siguientes. He imaginado que la fecha de nacimiento la tienes en un campo llamado fecha_nac y que tu tabla se llama tabla.

SELECT fecha_nac, cast(concat(year(curdate()),date_format(fecha_nac, '-%m-%d')) as date) diacumpleanos, dayofweek(cast(concat(year(curdate()),date_format( fecha_nac,'-%m-%d')) as date)) tipodia, CASE WHEN dayofweek(cast(concat(Year(curdate()),date_format( fecha_nac,'-%m-%d')) as date)) = 1 THEN 'lo celebras hoy, aunque tu cumpleaños es el próximo domingo' WHEN dayofweek(cast(concat(year(curdate()),date_format( fecha_nac,'-%m-%d')) as date)) = 7 THEN 'lo celebras hoy, aunque tu cumpleaños es el próximo sábado' ELSE 'hoy es tu cumpleaños' END aviso FROM `tabla` where curdate()= CASE WHEN dayofweek(cast(concat(year(curdate()),date_format( fecha_nac,'-%m-%d')) as date)) = 1 THEN SUBDATE(cast(concat(year(curdate()),date_format(fe cha_nac,'-%m-%d')) as date), interval 2 day) WHEN dayofweek(cast(concat(year(curdate()),date_format( fecha_nac,'-%m-%d')) as date)) = 7 THEN SUBDATE(cast(concat(year(curdate()),date_format(fe cha_nac,'-%m-%d')) as date), interval 1 day) ELSE cast(concat(year(curdate()),date_format(fecha_nac, '-%m-%d')) as date) END