Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 147

Month का पहला और आख़िरी दिन

महीने की सीमाएँ

Monthly reports को महीने का पहला और आख़िरी दिन चाहिए। महीनों की अलग लंबाई (28 से 31 दिन) होती है और leap years February को जटिल करते हैं, तो इन्हें हाथ से गणना error-prone है। MySQL का LAST_DAY और DATE_FORMAT इसे भरोसेमंद बनाते हैं।

💡 LAST_DAY आख़िरी दिन देता है; DATE_FORMAT(d, '%Y-%m-01') पहला दिन देता है।

आख़िरी दिन को LAST_DAY

SELECT LAST_DAY('2026-02-10');
2026-02-28

LAST_DAY(date) उस तारीख़ के महीने का आख़िरी दिन लौटाता है। यह 28, 29, 30 और 31-दिन महीने सही संभालता है, leap years समेत — कोई मैन्युअल logic नहीं चाहिए।

पहला दिन पाना

SELECT DATE_FORMAT('2026-02-10', '%Y-%m-01');
2026-02-01

कोई FIRST_DAY function नहीं, पर तारीख़ को day 01 से format करना महीने का पहला दिन देता है। यह किसी भी तारीख़ को चलता है जो आप देते हैं।

इस महीने अपने-आप

SELECT
    DATE_FORMAT(CURDATE(), '%Y-%m-01') AS first_day,
    LAST_DAY(CURDATE()) AS last_day;
+------------+------------+ | first_day | last_day | +------------+------------+ | 2026-09-01 | 2026-09-30 | +------------+------------+

CURDATE() को input इस्तेमाल करना मौजूदा महीने की सीमाएँ देता है, महीना बदलने पर अपने-आप update होकर।

महीने की date range

SELECT * FROM orders
WHERE order_date BETWEEN
    DATE_FORMAT(CURDATE(), '%Y-%m-01')
    AND LAST_DAY(CURDATE());

दोनों जोड़कर मौजूदा महीने के भीतर rows filter कीजिए। यह "इस महीने के" reports का standard pattern है — sales, sign-ups, या कोई dated records।

पिछला महीना

SELECT
    DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH, '%Y-%m-01') AS prev_first,
    LAST_DAY(CURDATE() - INTERVAL 1 MONTH) AS prev_last;

Functions लगाने से पहले INTERVAL 1 MONTH घटाना पिछले महीने की सीमाएँ देता है — monthly तुलनाओं और closing reports को उपयोगी।

आम गलतियाँ

  • 30 या 31 hard-code करना। महीने की लंबाई बदलती है; LAST_DAY को संभालने दीजिए।
  • Leap years भूलना। LAST_DAY February सही संभालता है।
  • FIRST_DAY function ढूँढना। कोई नहीं; DATE_FORMAT को 01 के साथ इस्तेमाल कीजिए।
  • <= बिना > last day इस्तेमाल करना। पूरे महीने को BETWEEN या inclusive bounds इस्तेमाल कीजिए।

सारांश

  • LAST_DAY(date) महीने का आख़िरी दिन देता है, leap-year सुरक्षित।
  • DATE_FORMAT(date, '%Y-%m-01') पहला दिन देता है।
  • मौजूदा महीने को CURDATE() इस्तेमाल कीजिए, अपने-आप update होकर।
  • महीने की range को दोनों BETWEEN से जोड़िए।
  • पिछले महीने को INTERVAL 1 MONTH घटाइए।

आगे, ages गणना कीजिए age from date of birth में, या हाल की rows filter कीजिए records from the last 7 days में।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

MySQL में महीने का आख़िरी दिन कैसे पाऊँ?
LAST_DAY() function इस्तेमाल कीजिए: SELECT LAST_DAY('2026-02-10'); 2026-02-28 लौटाता है। यह अलग महीने की लंबाई और leap years अपने-आप संभालता है, हमेशा सही अंतिम दिन देकर।
महीने का पहला दिन कैसे पाऊँ?
MySQL में कोई FIRST_DAY function नहीं, पर आप day को 01 set करने को DATE_FORMAT(d, '%Y-%m-01') इस्तेमाल कर सकते हैं, या LAST_DAY से days घटा सकते हैं। दोनों किसी भी तारीख़ को महीने का पहला दिन देते हैं।
मौजूदा महीने का पहला और आख़िरी दिन कैसे पाऊँ?
CURDATE() को input इस्तेमाल कीजिए: पहले दिन को DATE_FORMAT(CURDATE(), '%Y-%m-01') और आख़िरी को LAST_DAY(CURDATE())। ये महीना बदलने पर अपने-आप update होते हैं।
मौजूदा महीने के records कैसे select करूँ?
पहले से आख़िरी दिन की range से filter कीजिए: WHERE date BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-01') AND LAST_DAY(CURDATE())। यह मौजूदा महीने के भीतर dated सारी rows लौटाता है।
क्या LAST_DAY leap years संभालता है?
हाँ। LAST_DAY leap year में February 29 और वरना February 28 सही लौटाता है, और जानता है कौन-से महीनों में 30 या 31 दिन हैं। आपको खुद महीने की लंबाई संभालनी नहीं पड़ती।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicMySQL में Pivot Table आपकी प्रगति: 147 / 151 (97%) · Lesson 148 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें