SQL.SP或函数应计算星期五的下一个日期

use*_*448 8 sql sql-server-2005 sql-server-2008

我需要编写一个商店程序,它将返回给定日期的下一个星期五日期?例如 - 如果日期是05/12/2011,那么它应该在下个星期五返回05/13/2011.如果您通过,05/16/2011,那么它应该返回日期为2011年5月20日(星期五).如果您将星期五作为日期传递,那么它应该返回相同的日期.

Mar*_*ith 9

我将它设为标量UDF,因为它更容易消耗输出.

CREATE FUNCTION dbo.GetNextFriday(
@D DATETIME
)
RETURNS DATETIME 
WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN DATEADD(DAY,(13 - (@@DATEFIRST + DATEPART(WEEKDAY,@D)))%7,@D)
END
Run Code Online (Sandbox Code Playgroud)