こんにちは、この関数を変更して、月曜日にしたい週の最初の日の日付を返そうとしています。問題は、入力日付が日曜日の場合、前の月曜日ではなく次の月曜日を返すことです。たとえば、入力->出力が与えられた
2013-06-11 -> 2013-06-10
2013-06-16 -> 2013-06-10
日曜日が唯一の問題なので、ケースを追加しました
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[ufn_GetFirstDayOfWeek]
( @pInputDate DATETIME )
RETURNS DATETIME
BEGIN
SET @pInputDate = CONVERT(VARCHAR(10), @pInputDate, 111)
CASE WHEN DATENAME(dw, @pInputDate) = 'Sunday' THEN RETURN DATEADD(DD, -5- DATEPART(DW, @pInputDate),
@pInputDate) ELSE RETURN DATEADD(DD, 2- DATEPART(DW, @pInputDate),
@pInputDate) END
END
問題は、キーワード「Case」の近くで不正な構文というエラーが表示されることです。この問題を解決するためのより良い方法はありますか?