Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mySQL SELECT ulang tahun yang akan datang

Untuk mendapatkan semua ulang tahun dalam 7 hari ke depan, tambahkan perbedaan tahun antara tanggal lahir dan hari ini ke tanggal lahir dan kemudian temukan apakah itu jatuh dalam tujuh hari ke depan.

SELECT * 
FROM  persons 
WHERE  DATE_ADD(birthday, 
                INTERVAL YEAR(CURDATE())-YEAR(birthday)
                         + IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(birthday),1,0)
                YEAR)  
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);

Jika Anda ingin mengecualikan ulang tahun hari ini, cukup ubah > ke >=

SELECT * 
FROM  persons 
WHERE  DATE_ADD(birthday, 
                INTERVAL YEAR(CURDATE())-YEAR(birthday)
                         + IF(DAYOFYEAR(CURDATE()) >= DAYOFYEAR(birthday),1,0)
                YEAR)  
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);

-- Same as above query with another way to exclude today's birthdays 
SELECT * 
FROM  persons 
WHERE  DATE_ADD(birthday, 
                INTERVAL YEAR(CURDATE())-YEAR(birthday)
                         + IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(birthday),1,0)
                YEAR) 
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
     AND DATE_ADD(birthday, INTERVAL YEAR(CURDATE())-YEAR(birthday) YEAR) <> CURDATE();


-- Same as above query with another way to exclude today's birthdays 
SELECT * 
FROM  persons 
WHERE  DATE_ADD(birthday, 
                INTERVAL YEAR(CURDATE())-YEAR(birthday)
                         + IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(birthday),1,0)
                YEAR) 
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
     AND (MONTH(birthday) <> MONTH(CURDATE()) OR DAY(birthday) <> DAY(CURDATE()));

Ini adalah DEMO dari semua pertanyaan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1111 - Penggunaan fungsi grup tidak valid

  2. json_encode tidak mengembalikan apa pun

  3. Urutkan Array Multi-dimensi berdasarkan indeks yang diberikan - PHP?

  4. GROUP BY mengembalikan catatan pertama

  5. Kesalahan fatal Wordpress:Kesalahan Tidak Tertangkap:Panggilan ke fungsi yang tidak ditentukan mysql_connect() di /wp-includes/wp-db.php:1570