您好我正在尝试更改此函数以返回我想成为星期一的一周的第一天的日期。问题是当输入日期是星期日时,它返回下一个星期一而不是前一个星期一。例如它应该产量输入->输出给定
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'附近的语法不正确。有没有更好的方法来解决这个问题?