你好,我正在尝试修改这个函数来返回我想成为星期一的第一天的第一天的日期。问题是当输入日期是星期天它返回下一个星期一而不是以前one.For例如,它应该产生输入 - >输出给本周第一天
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'。是否有更好的方法来解决这个问题?