Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mySQL आगामी जन्मदिन चुनें

अगले 7 दिनों में सभी जन्मदिन प्राप्त करने के लिए, जन्म तिथि और आज के बीच वर्ष के अंतर को जन्म तिथि में जोड़ें और फिर पता करें कि यह अगले सात दिनों में आता है या नहीं।

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);

अगर आप आज के जन्मदिनों को बाहर करना चाहते हैं तो बस > बदलें करने के लिए >=

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()));

यह रहा एक DEMO सभी प्रश्नों में से



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ट्रिगर इन्सर्ट/अपडेट इवेंट्स पर

  2. सरणी डेटा प्रकार, विभाजित स्ट्रिंग,

  3. SQL सर्वर संख्यात्मक कार्यों पर एक त्वरित नज़र

  4. लारवेल माइग्रेशन:विशिष्ट कुंजी बहुत लंबी है, भले ही निर्दिष्ट हो

  5. यादृच्छिक परिणाम लौटाएं (रैंड द्वारा क्रम ())