|
デート@dt宣言する SET @dt=GETDATE() @number intを宣言 集合 @number=3 --1. 年の初日または最終日の日付を指定してください --A. 新年の初日 SELECT Co nVERT(char(5),@dt,120)+ '1-1 ' --B. 年の最後の日 SELECT Co nVERT(char(5),@dt,120)+ '12-31 ' --2. 指定された日付がある四半期の初日または最終日 --A. 四半期の初日 SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(Quarter,@dt)*3-Mo nth(@dt)-2, @dt), 120)+ '1 ')
--B. 四半期最終日(事件判決) SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(Quarter, @dt)*3ヶ月 nth(@dt), @dt), 120) +CASE WHEN DATEPART(Quarter,@dt) in(1,4) それから『31』『さか30』が終わる) --C. 四半期の最終日(ダイレクトプッシュアルゴリズム) SELECT DATEADD(Day,-1, Co nVERT(char(8), DATEADD(Mo nth, 1+DATEPART(Quarter,@dt)*3-Mo nth(@dt), @dt), 120)+ '1 ') --3. 指定された日付がある月の初日または最終日 --A. 月の初日 SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')
--B. 月の最終日 SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --C. 月末の日(誤った方法が使われやすい) SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt)) --4. 指定された日付がある曜日のいずれか SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5. 指定された日付がある曜日のいずれかの曜日 --ある。 日曜日を週の最初の日として SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B。 月曜日は週の初日です SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
|