आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable(GetSundayDate date); Query OK, 0 rows affected (0.44 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values('2019-08-07');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2018-09-05');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('2019-09-12');
Query OK, 1 row affected (0.17 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable;
यह निम्नलिखित आउटपुट देगा:
+---------------+ | GetSundayDate | +---------------+ | 2019-08-07 | | 2018-09-05 | | 2019-09-12 | +---------------+ 3 rows in set (0.00 sec)
कॉलम में सभी दिनांकों के लिए आने वाले रविवार की दिनांक प्राप्त करने की क्वेरी
mysql> SELECT date(GetSundayDate + INTERVAL 6 - weekday(GetSundayDate) DAY) AS ComingSundayDate from DemoTable;
यह निम्नलिखित आउटपुट देगा:
+------------------+ | ComingSundayDate | +------------------+ | 2019-08-11 | | 2018-09-09 | | 2019-09-15 | +------------------+ 3 rows in set (0.00 sec)
फॉर्मूला व्याख्या
WEEKDAY(date)0 (सोमवार) से 6 (रविवार) तक लौटाता है6 - WEEKDAY(date)रविवार तक के दिनों की संख्या देता हैINTERVAL ... DAYउन दिनों को जोड़ता है- यदि दिनांक पहले से रविवार है, तो यह उसी दिनांक को लौटाता है (0 दिन जोड़ता है)
वैकल्पिक सरल विधि
SELECT DATE_ADD(GetSundayDate, INTERVAL (7 - WEEKDAY(GetSundayDate)) % 7 DAY) AS ComingSundayDate FROM DemoTable;