sql >> Database teknologi >  >> RDS >> Mysql

finde ud af, om der kommer et jubilæum om n dage i MySql

Som andre har sagt, skal du ignorere året i din sammenligning. Funktionen DAYOFYEAR() er en måde at gøre det på.

Her er en hurtig løsning fra toppen af ​​mit hoved. Den returnerer alle fødselsdage inden for de næste 10 dage, selvom det er sidst i december, og fødselsdagen er næste år.

Den håndterer IKKE skudår ordentligt, så den vil være fri med 1 dag til begyndelsen af ​​marts fødselsdage, hvis dette år er et skudår, og personen ikke er født i et skudår eller omvendt. Skudår vil også få fødselsdage i begyndelsen af ​​januar til at dukke op en fridag i slutningen af ​​december nogle gange. Hvis nogen vil tilføje skudårskorrektionen, er du velkommen :)

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


  1. Skabelonmønstre og modifikatorer til formatering af dato/klokkeslæt i PostgreSQL

  2. Sådan formateres måneden i romertal i Oracle

  3. Hibernate, C3P0, Mysql -- Broken Pipe

  4. Sådan forbinder du python-applikation med online database