首页 > 解决方案 > 如果 SQL 的情况

问题描述

我正在尝试创建一个脚本,其中星期一它会提取星期五、星期六和星期日的信息。对于周二 - 周五,脚本将拉回前一天。示例周二拉周一,周三拉周二,等等。

但是,我在写这个案例时遇到了一些麻烦。

DECLARE @start DATETIME 
DECLARE @end DATETIME

SET @start='2016-05-30'
SET @end=dateadd(dd,1,@start)

Where
orderdate.CreatedDt BETWEEN @start and @end 

是我所拥有的。

我发现其他类似的问题,但我不知道如何应用这些信息。例如:SQL WHERE 取决于星期几

标签: sqlsql-server

解决方案


您可以根据当前日期的星期几执行此逻辑:

SELECT * 
FROM yourtable
WHERE
    yourtable.date BETWEEN
        CASE WHEN datepart(dw, getDate) = 2 THEN GetDate() - 3 ELSE GetDate() - 1 END
        AND
        GETDATE() - 1

推荐阅读