sql >> Database >  >> RDS >> Mysql

vinden of er over n dagen een verjaardag komt in MySql

Zoals anderen al hebben gezegd, moet u het jaar in uw vergelijking negeren. De functie DAYOFYEAR() is een manier om dat te doen.

Hier is een snelle oplossing uit mijn hoofd. Alle verjaardagen worden in de komende 10 dagen geretourneerd, zelfs als het eind december is en de verjaardag volgend jaar is.

Het gaat NIET goed om met schrikkeljaren, dus het zal 1 dag afwijken voor verjaardagen begin maart als dit jaar een schrikkeljaar is en de persoon niet in een schrikkeljaar is geboren of omgekeerd. Schrikkeljaren zullen er ook voor zorgen dat verjaardagen van begin januari soms eind december op een vrije dag verschijnen. Als iemand de schrikkeljaarcorrectie wil toevoegen, voel je vrij :)

SELECT birthdate 
FROM Anniversaries 
WHERE dayofyear(birthdate) - dayofyear(curdate()) between 0 and 10 
or dayofyear(birthdate) + 365 - dayofyear(curdate()) between 0 and 10;


  1. MySQL-python installeren

  2. Witte lijst met IP-adressenbereiken met cPanel

  3. Hoe de verhouding te berekenen met behulp van sql-query?

  4. Is mysql_real_escape_string voldoende voor anti-SQL-injectie?