नोट:मैंने इसे ठीक करने के लिए संपादित किया है जो मुझे लगता है कि एक महत्वपूर्ण बग था। वर्तमान में पोस्ट किया गया संस्करण मेरे लिए काम करता है।
आपके द्वारा अपने डेटाबेस के अनुरूप फ़ील्ड और तालिका नामों को संशोधित करने के बाद यह काम करना चाहिए।
SELECT
BRTHDATE AS BIRTHDAY
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25) AS AGE_NOW
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25) AS AGE_ONE_WEEK_FROM_NOW
FROM
"Database name".dbo.EMPLOYEES EMP
WHERE 1 = (FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25))
-
(FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25))
मूल रूप से, यह उनके जन्मदिन से अब तक के # दिनों को प्राप्त करता है, और उसे 365 से विभाजित करता है (जब आप सीधे वर्षों में परिवर्तित होते हैं तो आने वाली समस्याओं से बचने के लिए)।
फिर इसे उनके जन्मदिन से लेकर अब तक के एक सप्ताह तक # दिनों का समय मिलता है, और अब से एक सप्ताह बाद उनकी आयु प्राप्त करने के लिए उसे 365 से विभाजित कर दिया जाता है।
यदि उनका जन्मदिन एक सप्ताह के भीतर है, तो उन दो मानों के बीच का अंतर 1 होगा। तो यह उन सभी अभिलेखों को लौटा देता है।