
25/06/2009, 09:48
|
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 |