Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल आगामी जन्मदिन का चयन करें

नोट:मैंने इसे ठीक करने के लिए संपादित किया है जो मुझे लगता है कि एक महत्वपूर्ण बग था। वर्तमान में पोस्ट किया गया संस्करण मेरे लिए काम करता है।

आपके द्वारा अपने डेटाबेस के अनुरूप फ़ील्ड और तालिका नामों को संशोधित करने के बाद यह काम करना चाहिए।

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 होगा। तो यह उन सभी अभिलेखों को लौटा देता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर संग्रहीत कार्यविधि से API को कॉल करना

  2. अंतर जानने के लिए लिनक्स बनाम विंडोज परफॉर्मेंस टेस्ट पर एमएस एसक्यूएल सर्वर

  3. SQL सर्वर डेटाबेस में डेटा खोए बिना सीडीसी सक्षम तालिका से कॉलम कैसे जोड़ें या छोड़ें - SQL सर्वर ट्यूटोरियल

  4. एसक्यूएल सर्वर में पंक्तियों को कॉलम में कुशलतापूर्वक परिवर्तित करें

  5. SQL LIKE क्लॉज में SqlParameter का उपयोग काम नहीं कर रहा है