Select user where verjaardag < 30dagen

Status
Niet open voor verdere reacties.

Doomic

Gebruiker
Lid geworden
30 jan 2007
Berichten
96
Hoi iedereen.
het is een combinatie van een vraag en een voorbeeld voor anderen die zoiets zoeken.
ik heb een query gemaakt die alle personen opzoekt die binnen nu en 30 dagen jarig zijn en dan netjes alles ordent.
nu heb ik 2 vraagjes:
-ik heb er hardcode ingezet welk jaar het nu is en welk jaar het volgendjaar is.
ik weet hoe je in mysql de current jaar kan opvragen. alleen hoe koppel je dat dan in de DATE_FORMAT? (ik weet dat ik dit ook gewoon met php kan oplossen, maar moet toch kunnen vind ik)
-kan het korter? dit is niet een belangrijke vraag, maar was gewoon benieuwd. heb niet echt MYSQL ervaring. dus mogelijkheid van functies bouwen in de query zit er nog niet in bij mij! dus als iemand zin heeft. verbeter maar!

[SQL]SELECT `id` , `voornaam` , `achternaam` , DATE_FORMAT( bday, "%d-%m" ) AS bday
FROM `user`
WHERE IF( UNIX_TIMESTAMP( DATE_FORMAT( bday, "2009-%m-%d 00:00:00" ) ) < UNIX_TIMESTAMP( DATE_FORMAT( CURDATE( ) , "%y-%m-%d 00:00:00" ) ) , UNIX_TIMESTAMP( DATE_FORMAT( bday, "2010-%m-%d 00:00:00" ) ) , UNIX_TIMESTAMP( DATE_FORMAT( bday, "2009-%m-%d 00:00:00" ) ) )
BETWEEN (
UNIX_TIMESTAMP( DATE_FORMAT( CURDATE( ) , "%y-%m-%d 00:00:00" ) )
)
AND (
UNIX_TIMESTAMP( DATE_FORMAT( (
CURDATE( ) + INTERVAL +30
DAY ) , "%y-%m-%d 00:00:00" )
)
)
ORDER BY IF( UNIX_TIMESTAMP( DATE_FORMAT( bday, "2009-%m-%d 00:00:00" ) ) < UNIX_TIMESTAMP( DATE_FORMAT( CURDATE( ) , "%y-%m-%d 00:00:00" ) ) , UNIX_TIMESTAMP( DATE_FORMAT( bday, "2010-%m-%d 00:00:00" ) ) , UNIX_TIMESTAMP( DATE_FORMAT( bday, "2009-%m-%d 00:00:00" ) ) ) [/SQL]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan