SQL查询帮助:以非平凡的方式转换日期

Jak*_*ake 3 sql sql-server date sql-server-2000 dateadd

我有一个带有"日期"列的表,我想做一个执行以下操作的查询:

如果日期是星期一,星期二,星期三星期四,则显示的日期应向上移动1天,如

DATEADD(day, 1, [Date])
另一方面,如果是星期五,则显示的日期应增加3天(即,因此它变为下一个星期一).

我如何在SELECT语句中执行此操作?如,

SELECT somewayofdoingthis([Date]) FROM myTable

(这是SQL Server 2000.)

K R*_*ard 5

我就是这样做的.如果您将在其他地方使用此功能,我建议您使用上述功能.

CASE
WHEN
    DATEPART(dw, [Date]) IN (2,3,4,5)
THEN
    DATEADD(d, 1, [Date])
WHEN
    DATEPART(dw, [Date]) = 6
THEN
    DATEADD(d, 3, [Date])
ELSE
    [Date]
END AS [ConvertedDate]
Run Code Online (Sandbox Code Playgroud)