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

Date of Birth से Age निकालें

जन्म तिथि से age

एक बहुत आम ज़रूरत store की जन्म तिथि को सालों में age में बदलना है। यह सरल लगता है, पर गलत करना ऐसी ages देता है जो साल के ज़्यादातर हिस्से में एक से off होती हैं। MySQL का TIMESTAMPDIFF इसे सही और आसानी से करता है।

💡 TIMESTAMPDIFF(YEAR, dob, CURDATE()) इस्तेमाल कीजिए — यह पूरे साल गिनता है, जन्मदिन का सम्मान करते हुए।

साल घटाना क्यों fail होता है

-- गलत
SELECT YEAR(CURDATE()) - YEAR('2000-12-25');   -- 2026 में 26 देता है
-- पर Dec 25 का जन्मदिन अभी नहीं हुआ!

साल घटाना महीना और दिन अनदेखा करता है। दिसंबर में जन्मा कोई अपने जन्मदिन तक एक साल बड़ा नहीं होता। यह तरीका साल के ज़्यादातर हिस्से में गलत है।

सही तरीका: TIMESTAMPDIFF

SELECT name, dob,
    TIMESTAMPDIFF(YEAR, dob, CURDATE()) AS age
FROM students;
+------+------------+-----+ | name | dob | age | +------+------------+-----+ | Aman | 2005-03-10 | 21 | | Diya | 2008-11-20 | 17 | +------+------------+-----+

TIMESTAMPDIFF(YEAR, dob, CURDATE()) जन्म तिथि और आज के बीच पूरे साल गिनता है, सही ढंग से संभालते हुए कि इस साल का जन्मदिन बीता या नहीं।

CURDATE() इस्तेमाल

CURDATE() आज की तारीख़ लौटाता है, तो age हमेशा मौजूदा रहती है — यह हर दिन अपने-आप update होती है बिना आपके कुछ बदले। आप CURDATE() को किसी विशिष्ट तारीख़ से बदलकर fixed date से भी तुलना कर सकते हैं, जैसे exam date पर age ढूँढने को।

Age से filter

SELECT name
FROM members
WHERE TIMESTAMPDIFF(YEAR, dob, CURDATE()) >= 18;

Age गणना WHERE clause में डालकर filter कीजिए। यह सारे members लौटाता है जो 18 या ऊपर हैं, हर एक की age उनकी जन्म तिथि से तुरंत गणना करके।

महीनों या दिनों में age

SELECT name,
    TIMESTAMPDIFF(MONTH, dob, CURDATE()) AS age_months,
    TIMESTAMPDIFF(DAY, dob, CURDATE()) AS age_days
FROM babies;

बारीक़ detail को पहला argument MONTH या DAY में बदलिए। यह शिशुओं, memberships, या किसी भी मामले को सुविधाजनक है जहाँ पूरे साल बहुत मोटे हों।

आम गलतियाँ

  • सिर्फ़ साल घटाना। यह महीना और दिन अनदेखा करता है, गलत ages देकर।
  • Argument क्रम गलत करना। यह (unit, start, end) है — dob फिर CURDATE()।
  • dob को text store करना। DATE column इस्तेमाल कीजिए ताकि date functions चलें।
  • यह भूलना CURDATE() रोज़ update होता है। यह feature है — age मौजूदा रहती है।

सारांश

  • Age TIMESTAMPDIFF(YEAR, dob, CURDATE()) से गणना कीजिए।
  • सादा साल घटाना गलत है — यह महीना और दिन अनदेखा करता है।
  • CURDATE() age अपने-आप मौजूदा रखता है।
  • गणना WHERE में डालकर age से filter कीजिए।
  • बारीक़ detail को MONTH या DAY units इस्तेमाल कीजिए।

आगे, महीने की सीमाएँ ढूँढिए first and last day of a month में, या हाल की rows records from the last 7 days में।

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

MySQL में जन्म तिथि से age कैसे निकालूँ?
TIMESTAMPDIFF(YEAR, dob, CURDATE()) इस्तेमाल कीजिए। यह जन्म तिथि और आज के बीच पूरे सालों की संख्या सही गिनता है, यह ध्यान में रखते हुए कि इस साल का जन्मदिन बीता या नहीं। यह age पाने का सटीक तरीका है।
Age को साल घटाना क्यों गलत है?
बस YEAR(CURDATE()) - YEAR(dob) करना महीना और दिन अनदेखा करता है। दिसंबर में जन्मा कोई साल के ज़्यादातर हिस्से में ग़लती से एक साल बड़ा दिखेगा, क्योंकि उनका जन्मदिन अभी नहीं हुआ। TIMESTAMPDIFF इससे बचता है।
TIMESTAMPDIFF क्या करता है?
TIMESTAMPDIFF दो dates के बीच अंतर चुनी unit में लौटाता है — YEAR, MONTH, DAY और अधिक। Age को, TIMESTAMPDIFF(YEAR, dob, CURDATE()) पूरे किए साल देता है, जो बिल्कुल age है।
किसी उम्र से ऊपर के लोग कैसे ढूँढूँ?
Age गणना WHERE clause में डालिए: WHERE TIMESTAMPDIFF(YEAR, dob, CURDATE()) >= 18। यह हर किसी को लौटाता है जो कम-से-कम 18 है, हर व्यक्ति की age उनकी जन्म तिथि से गणना करके।
Age महीनों या दिनों में कैसे पाऊँ?
TIMESTAMPDIFF में unit बदलिए: महीनों को MONTH (TIMESTAMPDIFF(MONTH, dob, CURDATE())) या दिनों को DAY इस्तेमाल कीजिए। यह शिशुओं या सटीक अवधियों को उपयोगी है, पूरे सालों के बजाय।
🔗

Share this topic with a friend

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

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

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

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

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

यह lesson कैसा लगा?

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

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

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

▶ CodingEasily on YouTube

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

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

▶ Channel subscribe करें