除了星期一从星期五到星期日之外,Sql在前一天拉

时间:2015-01-27 14:15:30

标签: mysql sql sql-server-2008 date where-clause

这是我的MySql代码,

BETWEEN DATE_SUB(CURDATE(), INTERVAL (IF(DAYNAME(CURDATE()) = 'Monday',3,1)) DAY) AND
        DATE_SUB(CURDATE(), INTERVAL (IF(DAYNAME(CURDATE()) = 'Monday',1,1)) DAY)

我知道如何在Sql Server 2008中没有时间拉上前一天,但是我无法将这行代码从MySql转换为Sql。

1 个答案:

答案 0 :(得分:0)

根据您提供的MySQL代码,这应该可以满足您的需求:

Between Cast(DateAdd(Day, Case When DatePart(WeekDay, GetDate()) = 2 Then -3 Else -1 End, GetDate()) As Date)
And     Cast(DateAdd(Day, -1, GetDate()) As Date)

第二个If语句让我感到困惑,因为无论结果如何,您总是使用1天。因此,为此,我将其简化为始终使用昨天的日期。