सप्ताह प्रारंभ दिनांक और सप्ताह संख्या से सप्ताह की समाप्ति तिथि प्राप्त करें


98

मेरे पास एक क्वेरी है जो सदस्य की शादी की तारीखों को डेटाबेस में गिनाती है।

SELECT 
  SUM(NumberOfBrides) AS [Wedding Count]
  , DATEPART( wk, WeddingDate) AS [Week Number]
  , DATEPART( year, WeddingDate) AS [Year]
FROM  MemberWeddingDates
GROUP BY DATEPART(year, WeddingDate), DATEPART(wk, WeddingDate)
ORDER BY SUM(NumberOfBrides) DESC

परिणाम सेट में प्रत्येक सप्ताह की शुरुआत और अंत का प्रतिनिधित्व करने पर मैं कैसे काम करूं?

SELECT
  SUM(NumberOfBrides) AS [Wedding Count]
  , DATEPART(wk, WeddingDate) AS [Week Number]
  , DATEPART(year, WeddingDate) AS [Year]
  , ??? AS WeekStart
  , ??? AS WeekEnd
FROM  MemberWeddingDates
GROUP BY DATEPART(year, WeddingDate), DATEPART(wk, WeddingDate)
ORDER BY SUM(NumberOfBrides) DESC

जवाबों:


161

आप सप्ताह के दिन का पता लगा सकते हैं और आरंभ और समाप्ति तिथियों को प्राप्त करने के लिए दिनों को जोड़ सकते हैं।

DATEADD(dd, -(DATEPART(dw, WeddingDate)-1), WeddingDate) [WeekStart]

DATEADD(dd, 7-(DATEPART(dw, WeddingDate)), WeddingDate) [WeekEnd]

आप शायद तारीख के साथ-साथ समय भी अलग करना चाहते हैं।


3
इस बात को ध्यान में रखें कि DATEFIRST7 के अलावा किसी भी चीज़ में सेटिंग करने से यह टूट जाता है।
तोमलक

5
यह इसे "ब्रेक" नहीं करेगा, यह डेटफ़ास्ट का उपयोग करने के लिए वीकस्टार्ट = को सेट करेगा, जो डेटफ़र्स्ट कहता है कि सप्ताह का पहला दिन है। आपका संस्करण हमेशा एक सप्ताह के प्रारंभ और अंत के रूप में सोमवार और रविवार को करेगा, न कि उस सप्ताह के प्रारंभ और अंत के रूप में सर्वर का उपयोग करने के लिए क्या निर्धारित किया गया है
रॉबिन डे

1
हम्म ... यह एक वैध बिंदु है, +1। :) मैं खान को हटा दूंगा, फिर (हालांकि पैर में गोली लगने के लिए, यह बहुत अच्छी तरह से लक्षित था। जी )।
तोमलक

1
खैर, फिर मैं इसे फिर से मिटाता हूं। मुझे यकीन नहीं है कि उनके दाहिने दिमाग में सोमवार के अलावा और कुछ भी होगा जैसा कि सप्ताह की शुरुआत में भी। रविवार को सप्ताह शुरू करने का कोई मतलब नहीं है । :-)
टोमलाक

3
सोमवार के लिए 'सेट डेटफर्स्ट 1' ( msdn.microsoft.com/en-ie/library/ms181598.aspx )
सेलेक

41

यहाँ एक DATEFIRSTअज्ञेय समाधान है:

SET DATEFIRST 4     /* or use any other weird value to test it */
DECLARE @d DATETIME

SET @d = GETDATE()

SELECT
  @d ThatDate,
  DATEADD(dd, 0 - (@@DATEFIRST + 5 + DATEPART(dw, @d)) % 7, @d) Monday,
  DATEADD(dd, 6 - (@@DATEFIRST + 5 + DATEPART(dw, @d)) % 7, @d) Sunday

11
यह बहुत अच्छा है, लेकिन सोमवार मेरे लिए काम नहीं कर रहा था। मुझे सोमवार प्राप्त करने के लिए "0 -" जोड़ना था। मेरा सोमवार का कोड अब है: DATEADD (dd, 0 - (@@ DATEFIRST + 5 + DATEPART (dw, @d))% 7, @d)
वॉरेन

उत्तर और वॉरेंस टिप्पणी दोनों को उकेरा। Sql सर्वर संस्करण 11.0.5058.0 बहुत कम से कम वॉरेंस संशोधन के बिना सोमवार के लिए गलत तारीख देता है। इसके बदले मुझे शुक्रवार दे रहा था।
मोरेल

18

आप इसका उपयोग भी कर सकते हैं:

  SELECT DATEADD(day, DATEDIFF(day, 0, WeddingDate) /7*7, 0) AS weekstart,
         DATEADD(day, DATEDIFF(day, 6, WeddingDate-1) /7*7 + 7, 6) AS WeekEnd

2

@ तोमलक के उत्तर पर विस्तार । सूत्र रविवार और सोमवार के अलावा अन्य दिनों के लिए काम करता है, लेकिन आपको अलग-अलग मूल्यों का उपयोग करने की आवश्यकता है जहां 5 है। आपके लिए आवश्यक मूल्य पर पहुंचने का एक तरीका है

Value Needed = 7 - (Value From Date First Documentation for Desired Day Of Week) - 1

यहाँ दस्तावेज़ के लिए एक लिंक है: https://msdn.microsoft.com/en-us/library/ms181598.aspx

और यहाँ एक टेबल है जो इसे आपके लिए देता है।

          | DATEFIRST VALUE |   Formula Value   |   7 - DATEFIRSTVALUE - 1
Monday    | 1               |          5        |   7 - 1- 1 = 5
Tuesday   | 2               |          4        |   7 - 2 - 1 = 4
Wednesday | 3               |          3        |   7 - 3 - 1 = 3
Thursday  | 4               |          2        |   7 - 4 - 1 = 2
Friday    | 5               |          1        |   7 - 5 - 1 = 1
Saturday  | 6               |          0        |   7 - 6 - 1 = 0
Sunday    | 7               |         -1        |   7 - 7 - 1 = -1

लेकिन आपको उस तालिका और सिर्फ सूत्र को याद रखने की ज़रूरत नहीं है, और वास्तव में आप थोड़ा अलग उपयोग कर सकते हैं मुख्य आवश्यकता एक मूल्य का उपयोग करना है जो शेष दिनों की सही संख्या बना देगा।

यहाँ एक काम कर उदाहरण है:

DECLARE @MondayDateFirstValue INT = 1
DECLARE @FridayDateFirstValue INT = 5
DECLARE @TestDate DATE = GETDATE()

SET @MondayDateFirstValue = 7 - @MondayDateFirstValue - 1
SET @FridayDateFirstValue = 7 - @FridayDateFirstValue - 1

SET DATEFIRST 6 -- notice this is saturday

SELECT 
    DATEADD(DAY, 0 - (@@DATEFIRST + @MondayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate)  as MondayStartOfWeek
    ,DATEADD(DAY, 6 - (@@DATEFIRST + @MondayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate) as MondayEndOfWeek
   ,DATEADD(DAY, 0 - (@@DATEFIRST + @FridayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate)  as FridayStartOfWeek
    ,DATEADD(DAY, 6 - (@@DATEFIRST + @FridayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate) as FridayEndOfWeek


SET DATEFIRST 2 --notice this is tuesday

SELECT 
    DATEADD(DAY, 0 - (@@DATEFIRST + @MondayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate)  as MondayStartOfWeek
    ,DATEADD(DAY, 6 - (@@DATEFIRST + @MondayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate) as MondayEndOfWeek
   ,DATEADD(DAY, 0 - (@@DATEFIRST + @FridayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate)  as FridayStartOfWeek
    ,DATEADD(DAY, 6 - (@@DATEFIRST + @FridayDateFirstValue + DATEPART(dw,@TestDate)) % 7, @TestDate) as FridayEndOfWeek

यह विधि DATEFIRSTसेटिंग के अज्ञेय होगी जो कि मुझे चाहिए थी क्योंकि मैं एक तारीख के आयाम का निर्माण कर रहा हूं जिसमें कई सप्ताह के तरीके शामिल हैं।


2

यहाँ एक और संस्करण है। यदि आपके परिदृश्य में शनिवार को सप्ताह का पहला दिन और शुक्रवार को सप्ताह का अंतिम दिन होना चाहिए, तो नीचे दिया गया कोड संभाल लेगा:

  DECLARE @myDate DATE = GETDATE()
  SELECT    @myDate,
    DATENAME(WEEKDAY,@myDate),
    DATEADD(DD,-(CHOOSE(DATEPART(dw, @myDate), 1,2,3,4,5,6,0)),@myDate) AS WeekStartDate,
    DATEADD(DD,7-CHOOSE(DATEPART(dw, @myDate), 2,3,4,5,6,7,1),@myDate) AS WeekEndDate

क्वेरी का स्क्रीनशॉट


1

नीचे क्वेरी रविवार से शनिवार तक शुरू होने वाले सप्ताह के प्रारंभ और अंत के बीच डेटा देगी

SELECT DOB FROM PROFILE_INFO WHERE DAY(DOB) BETWEEN
DAY( CURRENT_DATE() - (SELECT DAYOFWEEK(CURRENT_DATE())-1))
AND
DAY((CURRENT_DATE()+(7 - (SELECT DAYOFWEEK(CURRENT_DATE())) ) ))
AND
MONTH(DOB)=MONTH(CURRENT_DATE())

1

आइए समस्या को दो भागों में विभाजित करते हैं:

1) सप्ताह के दिन का निर्धारण करें

DATEPART(dw, ...)रिटर्न एक नंबर, 1 ... 7, के सापेक्ष DATEFIRST(स्थापित करने डॉक्स )। निम्न तालिका संभावित मूल्यों को सारांशित करती है:

                                                   @@DATEFIRST
+------------------------------------+-----+-----+-----+-----+-----+-----+-----+-----+
|                                    |  1  |  2  |  3  |  4  |  5  |  6  |  7  | DOW |
+------------------------------------+-----+-----+-----+-----+-----+-----+-----+-----+
|  DATEPART(dw, /*Mon*/ '20010101')  |  1  |  7  |  6  |  5  |  4  |  3  |  2  |  1  |
|  DATEPART(dw, /*Tue*/ '20010102')  |  2  |  1  |  7  |  6  |  5  |  4  |  3  |  2  |
|  DATEPART(dw, /*Wed*/ '20010103')  |  3  |  2  |  1  |  7  |  6  |  5  |  4  |  3  |
|  DATEPART(dw, /*Thu*/ '20010104')  |  4  |  3  |  2  |  1  |  7  |  6  |  5  |  4  |
|  DATEPART(dw, /*Fri*/ '20010105')  |  5  |  4  |  3  |  2  |  1  |  7  |  6  |  5  |
|  DATEPART(dw, /*Sat*/ '20010106')  |  6  |  5  |  4  |  3  |  2  |  1  |  7  |  6  |
|  DATEPART(dw, /*Sun*/ '20010107')  |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  7  |
+------------------------------------+-----+-----+-----+-----+-----+-----+-----+-----+

अंतिम कॉलम में सोमवार से रविवार सप्ताह * के लिए सप्ताह के आदर्श दिन के मूल्य शामिल हैं। केवल चार्ट को देखकर हम निम्नलिखित समीकरण के साथ आते हैं:

(@@DATEFIRST + DATEPART(dw, SomeDate) - 1 - 1) % 7 + 1

2) दी गई तारीख के लिए सोमवार और रविवार की गणना करें

यह दिन के सप्ताह के मूल्य के लिए तुच्छ धन्यवाद है। यहाँ एक उदाहरण है:

WITH TestData(SomeDate) AS (
    SELECT CAST('20001225' AS DATETIME) UNION ALL
    SELECT CAST('20001226' AS DATETIME) UNION ALL
    SELECT CAST('20001227' AS DATETIME) UNION ALL
    SELECT CAST('20001228' AS DATETIME) UNION ALL
    SELECT CAST('20001229' AS DATETIME) UNION ALL
    SELECT CAST('20001230' AS DATETIME) UNION ALL
    SELECT CAST('20001231' AS DATETIME) UNION ALL
    SELECT CAST('20010101' AS DATETIME) UNION ALL
    SELECT CAST('20010102' AS DATETIME) UNION ALL
    SELECT CAST('20010103' AS DATETIME) UNION ALL
    SELECT CAST('20010104' AS DATETIME) UNION ALL
    SELECT CAST('20010105' AS DATETIME) UNION ALL
    SELECT CAST('20010106' AS DATETIME) UNION ALL
    SELECT CAST('20010107' AS DATETIME) UNION ALL
    SELECT CAST('20010108' AS DATETIME) UNION ALL
    SELECT CAST('20010109' AS DATETIME) UNION ALL
    SELECT CAST('20010110' AS DATETIME) UNION ALL
    SELECT CAST('20010111' AS DATETIME) UNION ALL
    SELECT CAST('20010112' AS DATETIME) UNION ALL
    SELECT CAST('20010113' AS DATETIME) UNION ALL
    SELECT CAST('20010114' AS DATETIME)
), TestDataPlusDOW AS (
    SELECT SomeDate, (@@DATEFIRST + DATEPART(dw, SomeDate) - 1 - 1) % 7 + 1 AS DOW
    FROM TestData
)
SELECT
    FORMAT(SomeDate,                            'ddd yyyy-MM-dd') AS SomeDate,
    FORMAT(DATEADD(dd, -DOW + 1, SomeDate),     'ddd yyyy-MM-dd') AS [Monday],
    FORMAT(DATEADD(dd, -DOW + 1 + 6, SomeDate), 'ddd yyyy-MM-dd') AS [Sunday]
FROM TestDataPlusDOW

आउटपुट:

+------------------+------------------+------------------+
|  SomeDate        |  Monday          |    Sunday        |
+------------------+------------------+------------------+
|  Mon 2000-12-25  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Tue 2000-12-26  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Wed 2000-12-27  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Thu 2000-12-28  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Fri 2000-12-29  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Sat 2000-12-30  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Sun 2000-12-31  |  Mon 2000-12-25  |  Sun 2000-12-31  |
|  Mon 2001-01-01  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Tue 2001-01-02  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Wed 2001-01-03  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Thu 2001-01-04  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Fri 2001-01-05  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Sat 2001-01-06  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Sun 2001-01-07  |  Mon 2001-01-01  |  Sun 2001-01-07  |
|  Mon 2001-01-08  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Tue 2001-01-09  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Wed 2001-01-10  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Thu 2001-01-11  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Fri 2001-01-12  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Sat 2001-01-13  |  Mon 2001-01-08  |  Sun 2001-01-14  |
|  Sun 2001-01-14  |  Mon 2001-01-08  |  Sun 2001-01-14  |
+------------------+------------------+------------------+

* रविवार से शनिवार सप्ताह के लिए आपको समीकरण को थोड़ा समायोजित करने की आवश्यकता है, जैसे कि कहीं 1 जोड़ें।


1

यदि रविवार को सप्ताह शुरू करने वाला दिन माना जाता है, तो यहां कोड है

Declare @currentdate date = '18 Jun 2020'

select DATEADD(D, -(DATEPART(WEEKDAY, @currentdate) - 1), @currentdate)

select DATEADD(D, (7 - DATEPART(WEEKDAY, @currentdate)), @currentdate)

0

मैं सिर्फ इस एक के साथ एक समान मामले का सामना करता हूं, लेकिन यहां समाधान मुझे मदद नहीं कर रहा है। इसलिए मैं इसका पता लगाने की कोशिश करता हूं। मैं केवल सप्ताह की शुरुआत की तारीख निकालता हूं, सप्ताह की समाप्ति तिथि समान तर्क वाली होनी चाहिए।

Select 
      Sum(NumberOfBrides) As [Wedding Count], 
      DATEPART( wk, WeddingDate) as [Week Number],
      DATEPART( year, WeddingDate) as [Year],
      DATEADD(DAY, 1 - DATEPART(WEEKDAY, dateadd(wk, DATEPART( wk, WeddingDate)-1,  DATEADD(yy,DATEPART( year, WeddingDate)-1900,0))), dateadd(wk, DATEPART( wk, WeddingDate)-1, DATEADD(yy,DATEPART( year, WeddingDate)-1900,0))) as [Week Start]

FROM  MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc

0

सबसे अधिक वोट किया गया उत्तर 1 सप्ताह और एक वर्ष के अंतिम सप्ताह को छोड़कर ठीक काम करता है । उदाहरण के लिए, यदि वेडिंगडेट का मान -01 2016-01-01 ’है, तो परिणाम 2015-12-27 और 2016-01-02 होगा , लेकिन सही उत्तर 2016-01-01 और 2016-01-02 है

इसे इस्तेमाल करे:

Select 
  Sum(NumberOfBrides) As [Wedding Count], 
  DATEPART( wk, WeddingDate) as [Week Number],
  DATEPART( year, WeddingDate) as [Year],
  MAX(CASE WHEN DATEPART(WEEK, WeddingDate) = 1 THEN CAST(DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate), 0) AS date) ELSE DATEADD(DAY, 7 * DATEPART(WEEK, WeddingDate), DATEADD(DAY, -(DATEPART(WEEKDAY, DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate), 0)) + 6), DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate), 0))) END) as WeekStart,
  MAX(CASE WHEN DATEPART(WEEK, WeddingDate) = DATEPART(WEEK, DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate) + 1, 0))) THEN DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate) + 1, 0)) ELSE DATEADD(DAY, 7 * DATEPART(WEEK, WeddingDate) + 6, DATEADD(DAY, -(DATEPART(WEEKDAY, DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate), 0)) + 6), DATEADD(YEAR, DATEDIFF(YEAR, 0, WeddingDate), 0))) END) as WeekEnd
FROM  MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc;

परिणाम जैसा दिखता है: यहां छवि विवरण दर्ज करें

यह सभी हफ्तों, 1 या अन्य के लिए काम करता है।


0

पावर बीआई डीएक्स फॉर्मूला के लिए तारीख से सप्ताह की शुरुआत और समाप्ति तिथि

WeekStartDate = [DateColumn] - (WEEKDAY([DateColumn])-1)
WeekEndDate = [DateColumn] + (7-WEEKDAY([DateColumn]))

0

यह मेरा समाधान है

    DETFIRST 1 सेट करें; / * एक अलग तारीख का उपयोग करने के लिए परिवर्तन * * /
    DECLARE @date DATETIME
    SET @ तारीख = CAST (दिनांक के रूप में '2/6/2019')

    DATEADD का चयन करें (dd, 0 - (DATEPART (dw, @date) - 1), @ तारीख) [dateFrom] 
            DATEADD (dd, 6 - (DATEPART (dw, @date) - 1), @ तारीख) [dateTo]


0

कस्टम तिथि द्वारा आरंभ तिथि और समाप्ति तिथि प्राप्त करें


   DECLARE @Date NVARCHAR(50)='05/19/2019' 
   SELECT
      DATEADD(DAY,CASE WHEN DATEPART(WEEKDAY, @Date)=1 THEN -6 ELSE 2 - DATEPART(WEEKDAY, @Date) END, CAST(@Date AS DATE)) [Week_Start_Date]
     ,DATEADD(DAY,CASE WHEN DATEPART(WEEKDAY, @Date)=1 THEN 0 ELSE  8 - DATEPART(WEEKDAY, @Date) END, CAST(@Date AS DATE)) [Week_End_Date]


हालांकि यह कोड प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है।
श्री

0

मेरे पास एक और रास्ता है, यह सेलेक्टेड डे स्टार्ट और डे एंड ऑफ वीक करंट है:

DATEADD (d, - (DATEPART (dw, GETDATE () - 2)), GETDATE ()) तिथि समय प्रारंभ है

तथा

DATEADD (दिन, 7- (DATEPART (dw, GETDATE () - 1)), GETDATE ()) तिथि समाप्ति का समय है


0

इसे करने का दूसरा तरीका:

declare @week_number int = 6280 -- 2020-05-07
declare @start_weekday int = 0 -- Monday
declare @end_weekday int = 6 -- next Sunday

select 
    dateadd(week, @week_number, @start_weekday), 
    dateadd(week, @week_number, @end_weekday)

स्पष्टीकरण:

  • @week_number प्रारंभिक कैलेंडर तिथि ' 1900-01-01 ' के बाद का सप्ताह नंबर है । इसकी गणना इस प्रकार की जा सकती है:select datediff(week, 0, @wedding_date) as week_number
  • @start_weekday सप्ताह के पहले दिन के लिए: 0 सोमवार के लिए, -1 रविवार को
  • @end_weekday अंतिम दिन सप्ताह के लिए: 6 अगले रविवार के लिए, 5 शनिवार को
  • dateadd(week, @week_number, @end_weekday): दी गई संख्या और दिनों की दी गई संख्या को प्रारंभिक कैलेंडर तिथि ' 1900-01-01 ' में जोड़ता है

0

यह मेरे से नहीं आता है, लेकिन यह काम परवाह किए बिना किया गया है:

SELECT DATEADD(wk, -1, DATEADD(DAY, 1-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --first day previous week
SELECT DATEADD(wk, 0, DATEADD(DAY, 1-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --first day current week
SELECT DATEADD(wk, 1, DATEADD(DAY, 1-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --first day next week

SELECT DATEADD(wk, 0, DATEADD(DAY, 0-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --last day previous week
SELECT DATEADD(wk, 1, DATEADD(DAY, 0-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --last day current week
SELECT DATEADD(wk, 2, DATEADD(DAY, 0-DATEPART(WEEKDAY, GETDATE()), DATEDIFF(dd, 0, GETDATE()))) --last day next week

मैंने इसे यहां पाया ।


-3

यह सुनिश्चित नहीं है कि यह कितना उपयोगी है, लेकिन मैं यहां नेटिज़ा एसक्यूएल पर एक समाधान की तलाश में समाप्त हो गया और स्टैक ओवरफ्लो पर एक नहीं पा सका।

IBM netezza के लिए आप कुछ का उपयोग करेंगे (सप्ताह की शुरुआत सोम, सप्ताह के अंत में सूरज जैसे):

नेक्स्ट_डे (वेडिंगडेट, 'SUN') -6 को वीकस्टार्ट के रूप में चुनें।

वीकएंड के रूप में next_day (वेडिंगडेट, 'SUN')


-4

एक्सेस क्वेरी के लिए, आप एक फ़ील्ड के रूप में नीचे प्रारूप में उपयोग कर सकते हैं

"FirstDayofWeek:IIf(IsDate([ForwardedForActionDate]),CDate(Format([ForwardedForActionDate],"dd/mm/yyyy"))-(Weekday([ForwardedForActionDate])-1))"

प्रत्यक्ष गणना की अनुमति दी ..

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.