Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sprawdzanie, czy za n dni zbliża się rocznica w MySql

Jak stwierdzili inni, w porównaniu należy zignorować rok. Funkcja DAYOFYEAR() jest jednym ze sposobów, aby to zrobić.

Oto szybkie rozwiązanie z czubka mojej głowy. Zwróci wszystkie daty urodzin w ciągu następnych 10 dni, nawet jeśli jest późny grudzień, a urodziny są w przyszłym roku.

NIE obsługuje prawidłowo lat przestępnych, więc będzie wyłączony o 1 dzień w przypadku urodzin na początku marca, jeśli ten rok jest rokiem przestępnym, a dana osoba nie urodziła się w roku przestępnym lub na odwrót. Lata przestępne powodują również, że urodziny na początku stycznia pojawiają się czasami w jeden dzień wolny pod koniec grudnia. Jeśli ktoś chce dodać korektę roku przestępnego, nie krępuj się :)

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. przy użyciu procedur składowanych if i else MySQL

  2. Ustaw pole Auto Increment od 1000 w laravel migracji 5.1

  3. Operacja niedozwolona po zamknięciu zestawu wyników (mysql, java)

  4. MySQL INSERT bez konieczności określania każdego pola innego niż domyślne (nr 1067 — Nieprawidłowa wartość domyślna dla „tabeli”)

  5. Połączenie JDBC MySQL przy użyciu gniazda Unix