সপ্তাহের নম্বর থেকে সপ্তাহের শুরুর তারিখ এবং সপ্তাহের শেষ তারিখ পান


99

আমার কাছে একটি কোয়েরি রয়েছে যা ডাটাবেসে সদস্যের বিয়ের তারিখ গণনা করে।

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

উত্তর:


164

আপনি সপ্তাহের দিনটি খুঁজে পেতে এবং শুরু এবং শেষ তারিখগুলি পেতে দিনগুলিতে একটি তারিখ যুক্ত করতে পারেন ..

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

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

আপনি সম্ভবত তারিখ থেকে সময় বিচ্ছিন্ন এছাড়াও তাকান করতে চান।


4
মনে রাখবেন যে DATEFIRSTthan টি ব্যতীত অন্য যে কোনও কিছুতে সেটিংস বিরতি দেয়।
তোমালাক

4
এটি "ব্রেক" করবে না, এটি ডেটফার্স্টটি উইকস্টার্ট সেট করার জন্য ব্যবহার করবে = ডেট ফার্স্ট যা বলে সপ্তাহের প্রথম দিন। আপনার সংস্করণ সর্বদা সোমবার এবং রবিবার সপ্তাহের শুরু এবং শেষ হিসাবে করবে, সার্ভারটি সপ্তাহের শুরু এবং শেষ হিসাবে ব্যবহারের জন্য সেট করা নয়
রবিন ডে

4
এইচএম ... এটি একটি বৈধ পয়েন্ট, +1। :) আমি আমার মুছব, তারপরে (যদিও পায়ে গুলি লাগার জন্য, এটি অত্যন্ত উত্তম ছিল was )।
তোমালাক

4
ঠিক আছে, তাহলে আমি আবার এটি মুছে ফেলা। আমি নিশ্চিত নই যে তাদের ডান মনের দিক থেকে সোমবার ব্যতীত অন্য যে কোনওভাবে সপ্তাহের শুরু হিসাবে ধরে নেওয়া হবে। রবিবার সপ্তাহ শুরু করা যা-ই বোঝায় না । :-)
টমলাক

4
সোমবার (জন্য 'datefirst 1 সেট' msdn.microsoft.com/en-ie/library/ms181598.aspx )
Selrac

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 + তারিখ পার্ট (ডাব্লু, @ ডি))% 7, @ ডি)
ওয়ারেন

উত্তর এবং ওয়ারেনস মন্তব্য উভয়কেই অগ্রাহ্য করেছেন। 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

4

এখানে অন্য সংস্করণ। যদি আপনার পরিস্থিতি শনিবার সপ্তাহের প্রথম দিন এবং শুক্রবার সপ্তাহের শেষ দিন হতে হয়, তবে নীচের কোডটি হ্যান্ডেল করবে:

  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

কোয়েরির স্ক্রিনশট


2

উপর সম্প্রসারিত @ Tomalak এর উত্তর। সূত্রটি রবিবার এবং সোমবার ব্যতীত অন্য কয়েক দিনের জন্য কাজ করে তবে 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সেটিং-এর অজ্ঞেয়বাদী হবে যা আমি একাধিক সপ্তাহের পদ্ধতিগুলির সাথে একটি তারিখের মাত্রা তৈরি করার সময় আমার প্রয়োজন।


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 যুক্ত করার মতো like


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

সর্বাধিক ভোট দেওয়া উত্তরটি এক বছরের প্রথম সপ্তাহ এবং শেষ সপ্তাহ বাদে দুর্দান্ত কাজ করে । উদাহরণস্বরূপ, যদি WeddingDate এর মান '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

এটি আমার সমাধান

    তারিখের প্রথম সেট 1; / * একটি ভিন্ন তারিখের প্রথম ব্যবহারের পরিবর্তন * /
    তারিখ তারিখ DATETIME
    SET @ তারিখ = CAST ('2/6/2019' তারিখ হিসাবে)

    তারিখ নির্বাচন করুন (d নভেম্বর, ০২ - (তারিখ পার্ট (ডাব্লু, @ তারিখ) - ১), @ তারিখ) [তারিখ থেকে], 
            তারিখ (d নভেম্বর, 6 - (তারিখ পার্ট (ডাব্লু, @ তারিখ) - ১), @ তারিখ) [তারিখ থেকে]


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

আমার একটি উপায় আছে, এটি দিন শুরু এবং দিন সপ্তাহের সমাপ্তি নির্বাচন করুন:

তারিখ (ডি, - (তারিখ পার্ট (ডাব্লু, GETDATE () - ২))), GETDATE ()) তারিখের শুরু

এবং

তারিখ (দিন, 7- (তারিখ পার্ট (ডাব্লু, 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)

ব্যাখ্যা:

  • @ উইক_নবার হল প্রাথমিক ক্যালেন্ডার তারিখ ' 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

এটি কতটা কার্যকর তা নিশ্চিত নয়, তবে আমি এখানে নেটিজা এসকিউএল এর সমাধান খুঁজতে গিয়ে শেষ করেছি এবং স্ট্যাক ওভারফ্লোতে একটিও পাইনি।

আইবিএম নেটিজার জন্য আপনি কিছু ব্যবহার করতে পারেন (সপ্তাহের শুরু সোমবারের জন্য, সপ্তাহের শেষের সূর্য) এর মতো:

পরের দিনটিকে (বিবাহের তারিখ, 'সান') -6 সাপ্তাহিক স্টার্ট হিসাবে নির্বাচন করুন,

পরের_দিন (বিবাহের তারিখ, 'সান') উইকএন্ডের হিসাবে


-4

অ্যাক্সেস ক্যোয়ারীগুলির জন্য, আপনি ক্ষেত্র হিসাবে নীচের বিন্যাসে ব্যবহার করতে পারেন

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

সরাসরি গণনা অনুমোদিত ..

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.