質問

私は、日付の範囲が開始日は2年前、現在に至っています。例)'05/29/2007'~'05/29/2009'.

どのようにいただくこともできましたが上記の日付の範囲で、リストのようには次のうちどれでしょう?

(開始日の始まり"05/27/2007のではないが、"05/29/2007"開始以来、平日は日曜日および'05/27/2007"は、初日の週'05/29/2007の論の最終了日,05/30/2009、土曜日)

StartDate   EndDate
05/27/2007  06/02/2007
06/03/2007  06/09/2007
...
05/24/2009  05/30/2009

[更新] ここで私は最終的に投入された問い合わせ

WITH hier(num, lvl) AS (
    SELECT  0, 1
        UNION ALL
    SELECT  100, 1
        UNION ALL 
    SELECT  num + 1, lvl + 1
    FROM    hier
    WHERE   lvl < 100
)
SELECT  num, lvl,
    DATEADD(dw, -DATEPART(dw, '2007-05-29'), '2007-05-29') + num  * 7,
    DATEADD(dw, -DATEPART(dw, '2007-05-29'), '2007-05-29') + (num + 1) * 7
FROM    hier
where   num <= 104  --; 52 weeks/year * 2
ORDER BY num
役に立ちましたか?

解決

WITH hier(num, lvl) AS (
        SELECT  0, 1
        UNION ALL
        SELECT  100, 1
        UNION ALL 
        SELECT  num + 1, lvl + 1
        FROM    hier
        WHERE   lvl < 100
        )
SELECT  DATEADD(dw, -DATEPART(dw, '29.05.2007'), '29.05.2007') + num  * 7,
        DATEADD(dw, -DATEPART(dw, '29.05.2007'), '29.05.2007') + (num + 1) * 7
FROM    hier
WHERE   DATEADD(dw, -DATEPART(dw, '29.05.2007'), '29.05.2007') + num * 7 < '29.05.2009' 
ORDER BY
        num

これを生成する行セットの範囲があります。

他のヒント

することを、確認する必要があり@@DATEFIRSTが正常に送信され、それまでお電話かメールでご連絡下さのコードです。書を読みDATEFIRSTものの理解を深めていただくためです。

SET DATEFIRST 1

DECLARE @my_date DATETIME

SET @my_date = '2007-05-29'

SELECT
     DATEADD(dw, -DATEPART(dw, @my_date), @my_date) AS StartDate,
     DATEADD(dw, 6 - DATEPART(dw, @my_date), @my_date) AS EndDate

きのインターネットはモバイルdirectyにSQL文を...私の長い歴史を扱う日、日付演算をいうアプローチのようなもの:

select 
      datepart( year, YourDateField ) as GroupYear,
      datepart( week, ( YourDateField - datepart( day, YourDateField ) +1 ) as GroupWeek,
      YourDateField,
      OtherFields
  from 
      YourTable
  where 
      whateverDateRange...
  group by 
     GroupYear,
     GroupWeek

この週間の場合もご複数の年につい週1両年週間前までの2年。

どのように算引き算など余計な計算はし---のGroupWeek.これは実際に計算する最初の日の週に基づくもの日付データとしての基礎---言いデータが25,26,27年こ---うそれぞれの第2回、第3-4日の一週間にて日曜日の開始曜日1.い:

月25-2(日)=月23日(土)+1=月24日(日曜日に開始しました。月26日-3日(日)=月23日...など 月27日-4(日)=月23日

なによりも含めた、分野に質問できる日もすべてを一つのSQLコー---

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top