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

SQL सर्वर 2005 में Isoweek

पहले के अन्य प्रयासों के लिए यहां एक लिंक है http://www.sqlteam। com/forums/topic.asp?TOPIC_ID=60510

यह समारोह के लिए पुराना कोड है

CREATE function f_isoweek(@date datetime)
RETURNS INT
as
BEGIN
DECLARE @rv int

SELECT @rv = datediff(ww, dateadd(ww, datediff(d, 0, dateadd(yy, datediff(yy, 0, day4),3))/7,-4),day4)
FROM (SELECT dateadd(ww, datediff(day, 0, @date)/7, 3) day4) a

RETURN @rv
END

@AndriyM के शानदार जवाब को अपने साथ मिलाने के बाद, हम 1 लाइन पर आ गए हैं। यह नया कोड है।

CREATE function f_isoweek(@date datetime)
RETURNS INT
as
BEGIN

RETURN (datepart(DY, datediff(d, 0, @date) / 7 * 7 + 3)+6) / 7
-- replaced code for yet another improvement.
--RETURN (datepart(DY, dateadd(ww, datediff(d, 0, @date) / 7, 3))+6) / 7

END

पुराने कोड के लिए स्पष्टीकरण (नए कोड की व्याख्या नहीं करने जा रहा है। यह मेरे कोड और AndriyM के कोड से अंश है):

चुनी गई तिथि का कार्यदिवस 4 ढूँढना

dateadd(week, datediff(day, 0, @date)/7, 3) 

समवर्ष ढूँढना - सप्ताह के दिन का वर्ष 4 सप्ताह का हमेशा वही वर्ष होता है जो उस सप्ताह का समवर्ष होता है

datediff(yy, 0, day4)

आइसोइयर के पहले दिन में 3 दिन जोड़ने पर आइसोइयर के पहले आइसोवीक का एक यादृच्छिक दिन पाया जाता है

dateadd(yy, datediff(yy, 0, day4),3)

इस वर्ष के पहले सम सप्ताह के सापेक्ष सप्ताह का पता लगाना

datediff(d, 0, dateadd(yy, datediff(yy, 0, day4),3))/7

पहले आइसोवीक के 4 दिनों के सोमवार को घटाकर सप्ताह के गुरुवार को इस साल के पहले आइसोवीक के पहले दिन से पहले खोजना होगा

dateadd(ww, datediff(d, 0, dateadd(yy, datediff(yy, 0, day4),3))/7,-4)

पहले सप्ताह के पहले गुरुवार और चुने हुए सप्ताह के पहले गुरुवार को जानने से, सप्ताह की गणना करना काफी आसान हो जाता है, इससे कोई फर्क नहीं पड़ता कि दोनों तिथियों के सप्ताह के दिनों में गुरुवार को कौन सी सेटिंग तिथि है।

datediff(ww, dateadd(ww, datediff(d, 0, dateadd(yy, datediff(yy, 0, day4),3))/7,-4),day4)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डीबी . से अचिह्नित डेटा प्राप्त करें

  2. SQL क्वेरी ऑप्टिमाइज़ेशन - यह कैसे निर्धारित करें कि इसकी आवश्यकता कब और क्या है

  3. डेटाबेस मेल प्रोफाइल अपडेट करें (SSMS)

  4. SQL स्वरूपण मानक

  5. SQL सर्वर JSON_Modify, सभी को कैसे अपडेट करें?