Month का पहला और आख़िरी दिन
महीने की सीमाएँ
Monthly reports को महीने का पहला और आख़िरी दिन चाहिए। महीनों की अलग लंबाई (28 से 31 दिन) होती है और leap years February को जटिल करते हैं, तो इन्हें हाथ से गणना error-prone है। MySQL का LAST_DAY और DATE_FORMAT इसे भरोसेमंद बनाते हैं।
आख़िरी दिन को LAST_DAY
SELECT LAST_DAY('2026-02-10');
LAST_DAY(date) उस तारीख़ के महीने का आख़िरी दिन लौटाता है। यह 28, 29, 30 और 31-दिन महीने सही संभालता है, leap years समेत — कोई मैन्युअल logic नहीं चाहिए।
पहला दिन पाना
SELECT DATE_FORMAT('2026-02-10', '%Y-%m-01');
कोई FIRST_DAY function नहीं, पर तारीख़ को day 01 से format करना महीने का पहला दिन देता है। यह किसी भी तारीख़ को चलता है जो आप देते हैं।
इस महीने अपने-आप
SELECT
DATE_FORMAT(CURDATE(), '%Y-%m-01') AS first_day,
LAST_DAY(CURDATE()) AS last_day;
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 अपने-आप संभालता है, हमेशा सही अंतिम दिन देकर।महीने का पहला दिन कैसे पाऊँ?
DATE_FORMAT(d, '%Y-%m-01') इस्तेमाल कर सकते हैं, या LAST_DAY से days घटा सकते हैं। दोनों किसी भी तारीख़ को महीने का पहला दिन देते हैं।मौजूदा महीने का पहला और आख़िरी दिन कैसे पाऊँ?
DATE_FORMAT(CURDATE(), '%Y-%m-01') और आख़िरी को LAST_DAY(CURDATE())। ये महीना बदलने पर अपने-आप update होते हैं।मौजूदा महीने के records कैसे select करूँ?
WHERE date BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-01') AND LAST_DAY(CURDATE())। यह मौजूदा महीने के भीतर dated सारी rows लौटाता है।