SQL में आयु की गणना कैसे करें (PostgreSQL, MySQL, SQL सर्वर)
जन्म तिथि से आयु की गणना करने के लिए व्यावहारिक एसक्यूएल पैटर्न सीखें: पूर्ण वर्ष, सटीक वर्ष और महीने, और एक विशिष्ट तिथि के अनुसार आयु। PostgreSQL, MySQL और SQL सर्वर के उदाहरण शामिल हैं।
जन्म तिथि से SQL में आयु की गणना करने की आवश्यकता है? यह मार्गदर्शिका सामान्य डेटाबेस के लिए व्यावहारिक, कॉपी-तैयार क्वेरी दिखाती है। आप सीखेंगे कि गणना कैसे करें:
- आयु वर्षों में (वर्ष पूर्ण)
- आयु एक विशिष्ट तिथि के अनुसार (सिर्फ आज नहीं)
- जब आपको अधिक विवरण की आवश्यकता हो तो एक सटीक शैली आउटपुट (वर्ष और महीने)
1) तय करें कि आपके उपयोग के मामले में "आयु" का क्या अर्थ है
अधिकांश व्यावसायिक तर्क वर्ष पूरे हुए का उपयोग करते हैं। इसका मतलब है कि 2000-06-10 को जन्मा कोई व्यक्ति 2026-06-10 को 25 साल का होगा, उससे पहले नहीं। YEAR(आज) - YEAR(dob) जैसे सरल वर्ष घटाने से सावधान रहें, क्योंकि यह जन्मदिन से पहले गलत है।
2) PostgreSQL: आयु वर्षों में (वर्ष पूर्ण)
PostgreSQL में एक अंतर्निहित age() फ़ंक्शन है जो एक अंतराल लौटाता है। इस प्रकार पूरे वर्ष निकालें:
उम्र_वर्ष के रूप में उद्धरण (उम्र से वर्ष (CURRENT_DATE, जन्मतिथि)) चुनें
लोगों से;[[TAG_28]]][[TAG_29]]]
PostgreSQL: एक विशिष्ट तिथि के अनुसार आयु
उम्र से वर्ष (दिनांक '2026-02-23', जन्मतिथि)) आयु_वर्ष के रूप में चुनें
लोगों से;[[TAG_34]]][[TAG_35]]]
3) MySQL: आयु वर्षों में (वर्ष पूर्ण)
MySQL में, TIMESTAMPDIFF का उपयोग करें:
उम्र_वर्ष के अनुसार टाइमस्टैम्पडिफ(वर्ष, जन्मतिथि, कर्डेट()) चुनें
लोगों से;[[TAG_44]]][[TAG_45]]]
MySQL: एक विशिष्ट तिथि के अनुसार आयु
उम्र_वर्ष के रूप में टाइमस्टैम्पडिफ (वर्ष, जन्मतिथि, दिनांक ('2026-02-23')) चुनें
लोगों से;[[TAG_50]]][[TAG_51]]]
4) SQL सर्वर: आयु वर्षों में (वर्ष पूर्ण)
SQL सर्वर में एक सामान्य पैटर्न है DATEDIFF जिसमें से एक जन्मदिन की जांच घटा दी जाए:
चुनें
दिनांकित(वर्ष, जन्मतिथि, कास्ट(दिनांक प्राप्त करें() दिनांक के अनुसार))
- मामला
जब दिनांकजोड़ें(वर्ष, दिनांकडिफ़(वर्ष, जन्म तिथि, कास्ट(दिनांक प्राप्त करें() दिनांक के अनुसार)), दिनांक) > कास्ट करें(दिनांक प्राप्त करें() दिनांक के अनुसार)
फिर 1 और 0
आयु_वर्ष के रूप में समाप्त करें
लोगों से;[[TAG_60]]][[TAG_61]]]
SQL सर्वर: एक विशिष्ट तिथि के अनुसार आयु
DECLARE @as_of date = '2026-02-23';
चयन करें
दिनांकित(वर्ष, तिथि, @as_of)
- मामला
जब दिनांकजोड़ें(वर्ष, दिनांकितडिफ़(वर्ष, जन्म तिथि, @as_of), तिथि) > @as_of
फिर 1 और 0
आयु_वर्ष के रूप में समाप्त करें
लोगों से;[[TAG_66]]][[TAG_67]]]
5) सटीक आयु (वर्ष और महीने) उदाहरण
यदि आप "31 वर्ष 4 महीने" जैसी "सटीक" प्रस्तुति चाहते हैं, तो पहले वर्षों की गणना करें, फिर अंतिम जन्मदिन के बाद के महीनों की गणना करें। यहां एक PostgreSQL उदाहरण है:
[[TAG_73]]]आधार AS के साथ (
दिनांक चुनें, CURRENT_DATE जैसा_है
लोगों से
)
चयन करें
निकालें(वर्ष आयु से(as_of, dob)) वर्षों के रूप में,
निकालें(आयु से महीना(आयु के अनुसार, जन्म तिथि)) महीनों के रूप में
आधार से;
सामान्य नुकसान
- समय क्षेत्र: जब संभव हो तो जन्म तिथि को
दिनांक के रूप में संग्रहित करें। दिनांक समय अलग-अलग क्षेत्रों में बदल सकता है।
- लीप दिवस जन्मदिन: परिभाषित करें कि गैर लीप वर्ष में क्या होता है। अधिकांश सिस्टम नीति के आधार पर 2004-02-29 के जन्मदिनों को 02-28 या 03-01 मानते हैं।
- शून्य या भविष्य की जन्मतिथि: फ़िल्टर या गार्ड करें, अन्यथाआपकी क्वेरी शून्य या नकारात्मक मान लौटाएगी।
त्वरित विवेक जांच
यदि आप किसी एकल जन्म तिथि को शीघ्रता से सत्यापित करना चाहते हैं, तो आप ऑनलाइन कैलकुलेटर का उपयोग कर सकते हैं: ऑनलाइन आयु की गणना करें।
संबंधित मार्गदर्शिकाएँ
- आयु की गणना कैसे करें (संपूर्ण मार्गदर्शिका)
- एक्सेल में उम्र की गणना कैसे करें[[TAG_110]]]
- जावास्क्रिप्ट में आयु की गणना कैसे करें[[TAG_114]]]
अक्सर पूछे जाने वाले प्रश्न
YEAR(आज) माइनस YEAR(dob) ग़लत क्यों है?
यह इस बात पर ध्यान नहीं देता है कि इस वर्ष अभी तक जन्मदिन हुआ है या नहीं, इसलिए यह जन्मदिन से पहले उम्र बढ़ा देता है।
जन्मतिथि के लिए सबसे सुरक्षित SQL प्रकार क्या है?
यदि आप केवल कैलेंडर दिन की परवाह करते हैं तो जन्मतिथि के लिए दिनांक कॉलम (दिनांकसमय नहीं) का उपयोग करें।