DATE_FORMAT() से दिन-महीना तुलना
डेट कॉलम में केवल दिन और महीना तुलना करने के लिए DATE_FORMAT() फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName
WHERE DATE_FORMAT(yourColumnName, '%m-%d') = DATE_FORMAT('yourValue', '%m-%d')
AND yourCondition;
फॉर्मेट स्पेसिफायर
%m- महीना (01-12)%d- दिन (01-31)%Y- वर्ष (4 अंक)
उदाहरण: टेबल और डेटा
mysql> create table compareDayAndMonthDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> compareDayAndTime date
-> );
Query OK, 0 rows affected (0.49 sec)
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2014-01-31');
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2014-10-11');
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2016-09-12');
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2017-04-25');
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2018-12-25');
mysql> insert into compareDayAndMonthDemo(compareDayAndTime) values('2019-02-27');
क्वेरी: 01-31 तारीख वाले रिकॉर्ड ढूंढना (किसी भी वर्ष के)
mysql> SELECT * FROM compareDayAndMonthDemo
-> WHERE DATE_FORMAT(compareDayAndTime, '%m-%d') = DATE_FORMAT('2019-01-31', '%m-%d')
-> AND Id = 1;
+----+-------------------+ | Id | compareDayAndTime | +----+-------------------+ | 1 | 2014-01-31 | +----+-------------------+
केवल दिन-महीना दिखाने के लिए
mysql> SELECT DATE_FORMAT(compareDayAndTime, '%m-%d') AS DayAndMonthOnly
-> FROM compareDayAndMonthDemo
-> WHERE DATE_FORMAT(compareDayAndTime, '%m-%d') = DATE_FORMAT('2019-01-31', '%m-%d')
-> AND Id = 1;
+-----------------+ | DayAndMonthOnly | +-----------------+ | 01-31 | +-----------------+
उपयोग के मामले
- जन्मदिन/सालगिरह रिमाइंडर (वर्ष अनदेखा करें)
- वार्षिक आवर्ती घटनाएँ
- महीने-दिन आधारित रिपोर्टिंग