सरल उत्तर नहीं है; किसी व्यक्ति की उम्र को कभी भी स्टोर न करें। यह प्रत्येक व्यक्ति के लिए वार्षिक रूप से बदलता है लेकिन, जैसा कि आप कहते हैं, आपको यह जांचना होगा कि यह प्रतिदिन प्रत्येक व्यक्ति के लिए सही है।
केवल जन्म तिथि संग्रहित करें, और फिर डेटाबेस से चयन करते समय आयु की गणना करें। केवल today - date of birth
है इसलिए लगभग कोई CPU नहीं लेता है।
संपादित करें:
ManseUK's answer
में मेरी टिप्पणी का विस्तार करने के लिए असफलता की भी संभावना है। यदि आपका सर्वर/डेटाबेस डाउन हो जाए तो क्या होगा? या आपका अपडेट अपने निर्दिष्ट समय पर चलने में विफल रहता है? या कोई व्यक्ति साथ आता है और उस तारीख के लिए पहले से ही अपडेट चलाए जाने के बाद इसे मैन्युअल रूप से चलाता है? या कोई आपका शेड्यूलर बंद कर देता है? यदि आप Age
की गणना करते हैं तो ऐसा होने का कोई खतरा नहीं है जैसा कि आप डेटाबेस से चुनते हैं।
यह चुनने के लिए कि आयु 25 से 30 वर्ष के बीच कहाँ है और एक DATE कॉलम dateofbirth
मानकर आपकी क्वेरी कुछ इस तरह होगी:
select *
from users
where dateofbirth between date_add( curdate(), interval -30 year )
and date_add( curdate(), interval -25 year )
सुनिश्चित करें कि users
dateofbirth
पर अनुक्रमित किया जाता है ।