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

पिछले 7 दिन के Records

हाल की rows लाना

एक बहुत आम report "पिछले 7 दिन के records दिखाओ" है — हाल के orders, sign-ups या logs। MySQL इसे CURDATE() और INTERVAL से आसान बनाता है, और वही pattern 30 दिन, आज, या किसी भी अवधि को scale होता है।

💡 date_column >= CURDATE() - INTERVAL 7 DAY इस्तेमाल कीजिए — यह हर दिन सही रहता है।

पिछले 7 दिन

SELECT * FROM orders
WHERE order_date >= CURDATE() - INTERVAL 7 DAY;
-- पिछले 7 दिन के आज तक सारे orders लौटाता है

यह पिछले हफ़्ते के भीतर dated हर order लौटाता है। चूँकि यह CURDATE() इस्तेमाल करता है, इसका मतलब अपने-आप "पिछले 7 दिन" है चाहे आप किस दिन चलाएँ।

INTERVAL कैसे काम करता है

SELECT CURDATE(), CURDATE() - INTERVAL 7 DAY;
+------------+------------------------------+ | CURDATE() | CURDATE() - INTERVAL 7 DAY | +------------+------------------------------+ | 2026-09-21 | 2026-09-14 | +------------+------------------------------+

INTERVAL 7 DAY तारीख़ को सात दिन shift करता है। इसे आज से घटाना एक हफ़्ता पहले की तारीख़ देता है, जो range की निचली सीमा बनती है।

सिर्फ़ आज

SELECT * FROM orders
WHERE DATE(created_at) = CURDATE();

सिर्फ़ आज की rows पाने को, date हिस्से की CURDATE() से तुलना कीजिए। column को DATE() में लपेटना time अनदेखा करता है, तो आज बनी हर row मेल खाती है, चाहे clock time जो हो।

पिछले 30 दिन

SELECT * FROM orders
WHERE order_date >= CURDATE() - INTERVAL 30 DAY;

बस संख्या और unit बदलिए। वही pattern पिछले 30 दिन, पिछले 3 महीने (INTERVAL 3 MONTH), या पिछला साल (INTERVAL 1 YEAR) देता है।

Date-time columns के साथ

SELECT * FROM logs
WHERE created_at >= NOW() - INTERVAL 7 DAY;

अगर column पूरी date और time store करता है, CURDATE() के बजाय NOW() (जो time शामिल करता है) इस्तेमाल कीजिए। यह ठीक 7 दिन पहले से इस पल तक के records देता है।

आम गलतियाँ

  • Fixed date इस्तेमाल करना। यह stale हो जाती है; CURDATE()/NOW() मौजूदा रहते हैं।
  • Time हिस्सा अनदेखा करना। column time कैसे store करता है उससे मिलाने को DATE() या NOW() इस्तेमाल कीजिए।
  • गलत interval unit। DAY, MONTH, YEAR आपके इरादे से मेल खाना चाहिए।
  • Date को string से तुलना करना। Dates DATE/DATETIME columns में store कीजिए।

सारांश

  • पिछले 7 दिन >= CURDATE() - INTERVAL 7 DAY से पाइए।
  • INTERVAL तारीख़ को दिनों, महीनों या सालों की संख्या shift करता है।
  • सिर्फ़ आज को DATE(col) = CURDATE() इस्तेमाल कीजिए।
  • 30 दिन, महीने, साल आदि को संख्या/unit बदलिए।
  • Date-time columns को CURDATE() के बजाय NOW() इस्तेमाल कीजिए।

आगे, महीने की सीमाएँ पाइए first and last day of a month में, या ages गणना कीजिए age from date of birth में।

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

MySQL में पिछले 7 दिन के records कैसे पाऊँ?
WHERE date_column >= CURDATE() - INTERVAL 7 DAY इस्तेमाल कीजिए। यह पिछले हफ़्ते के भीतर, आज तक dated सारी rows लौटाता है। यह हर दिन अपने-आप update होता है क्योंकि यह CURDATE() पर आधारित है।
MySQL में INTERVAL क्या करता है?
INTERVAL आपको तारीख़ से समय जोड़ने या घटाने देता है। CURDATE() - INTERVAL 7 DAY 7 दिन पहले की तारीख़ देता है। आप range queries को dates shift करने को DAY, MONTH, YEAR और अन्य units इस्तेमाल कर सकते हैं।
सिर्फ़ आज के records कैसे पाऊँ?
Date हिस्से की CURDATE() से तुलना कीजिए: WHERE DATE(created_at) = CURDATE()। DATE() इस्तेमाल करना time हटाता है, तो आज की सारी rows मेल खाती हैं चाहे वे किस समय बनी हों।
पिछले 30 दिन के records कैसे पाऊँ?
Interval बदलिए: WHERE date_column >= CURDATE() - INTERVAL 30 DAY। वही pattern INTERVAL value और unit समायोजित करके किसी भी संख्या के दिनों, महीनों या सालों को चलता है।
Fixed date के बजाय CURDATE() क्यों इस्तेमाल करूँ?
CURDATE() हमेशा आज लौटाता है, तो query हर दिन बिना edit किए सही रहती है। Fixed date को लगातार update करना पड़ता। CURDATE() को INTERVAL के साथ इस्तेमाल करना "हाल की" ranges self-maintaining बनाता है।
🔗

Share this topic with a friend

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

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

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

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

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

यह lesson कैसा लगा?

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

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

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

▶ CodingEasily on YouTube

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

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

▶ Channel subscribe करें