入力としてGETDATE()が指定されている月の最初の週の日付を取得することは可能ですか?SQL Server:月の第1週と第2週の日付範囲を取得する
私は以下のコードによって、現在の週の日付を取得することができます: -
select
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 1, GETDATE()), 101),
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 7, GETDATE()), 101)
がどのように私は、入力としてGETDATE()
に基づいて月の第一、第二週の日付を得ることができますか?例えば
:7月の
- 1週間の作業日数、2016 - 2016年1月7日 - 2/7/16
- 2週間の作業日数: - 2016年4月7日 - 9/2016分の7
おかげ
EDIT: - 私は与えられた月の各週の開始日と終了を取得するクエリの下に使用しています: -
DECLARE @date date = '2016-07-08'--sample date
DECLARE @firstDay date = DATEADD(M, DATEDIFF(M, 0, @date), 0)
DECLARE @firstWeekLastDay date = DATEADD(D, 7-DATEPART(DW, @firstDay), @firstDay)
DECLARE @secondWeekFirstDay date = DATEADD(D, 2, @firstWeekLastDay)
DECLARE @secondWeekLastDay date = DATEADD(D, 5, @secondWeekFirstDay)
DECLARE @thirdWeekfirstDay date = DATEADD(D, 2, @secondWeekLastDay)
DECLARE @thirdWeekLastDay date = DATEADD(D, 5, @thirdWeekfirstDay)
DECLARE @fourthWeekFirstDay date = DATEADD(D, 2, @thirdWeekLastDay)
DECLARE @fourthWeekLastDay date = DATEADD(D, 5, @fourthWeekFirstDay)
DECLARE @fifthWeekFirstDay date = DATEADD(D, 2, @fourthWeekLastDay)
DECLARE @fifthWeekLastDay date = DATEADD(D, 5, @fifthWeekFirstDay)
SELECT @firstDay, @firstWeekLastDay, @secondWeekFirstDay, @secondWeekLastDay, @thirdWeekfirstDay, @thirdWeekLastDay, @fourthWeekFirstDay, @fourthWeekLastDay
だから、その週は日曜日に始まり、その場合は土曜日に終わるでしょうか? – Whencesoever
の例でも2週間しかないのですか? – Whencesoever
そう、基本的に、特定の月の最初の週にあるすべての日付を取得します。 – Villie