CrAzY hOuSe
Locos por la programación
SQL: ¿Quién cumpleaños los próximos 7 días?

En ocasiones nos hemos visto en la necesidad de hacer esta pregunta a nuestra base de datos, el problema habitual es que en el campo de Fecha Nacimiento esta almacenado el año real de la celebración, por lo que compararlo con las fechas actuales resulta un poco “complicado”.

Este sería un ejemplo de una tabla de empleados “básica”:

Nombre FechaNacimiento
Antonio Fernández 14/04/1990
Marisa Paredes 15/02/1965
Adrian López 28/02/1978

La consulta para saber quien cumpleaños en los próximos 7 días seria:

SELECT * FROM Personal
WHERE CONVERT(Date, CONVERT(VarChar(4), Year(Getdate())) +'/'+ CONVERT(VarChar(2), Month(FechaNacimiento)) +'/'+ CONVERT(VarChar(2), Day(FechaNacimiento))) BETWEEN GETDATE() AND GETDATE()+7

Realmente lo que hacemos es coger la fecha de nacimiento y sustituir el año de nacimiento por el año de la fecha en curso, con eso conseguimos tener una fecha “actual” y podremos compararlas.


Posted jue, may 13 2010 17:37 by Maverick
Filed under:

Comments

Javier Otero wrote re: SQL: ¿Quién cumpleaños los próximos 7 días?
on mar, feb 15 2011 19:24

Este metodo no funciona en sqlServer...

dice:

Type date is not a defined system type.

crorella wrote re: SQL: ¿Quién cumpleaños los próximos 7 días?
on lun, feb 21 2011 15:23

Y cuando la persona está de cumpleaños en un año bisiesto, pero el año actual no lo es?. Esa consulta va a fallar.

Add a Comment

(optional)  
(optional)
(required)  
Remember Me?
MavericK
Powered by Community Server (Non-Commercial Edition), by Telligent Systems