正在寻找针对Oracle到SQL Server 2012迁移的NEXT_DAY的查询

时间:2013-06-25 15:45:46

标签: sql sql-server-2012 sql-server-2012-express dateadd

在SQL SERVER 2012中查找代码,以查找ORDERS表中所有ORDERDATE的下一次'WEDNESDAY'。我想出了以下内容,但它只给了Orderdate + 7天。请帮助我。

SELECT DATEADD(DD,7, CONVERT(Datetime, OrderDate, 101))
FROM Orders

1 个答案:

答案 0 :(得分:1)

您可以使用:

SELECT CASE WHEN DATENAME(WEEKDAY,OrderDate) = 'Wednesday' 
       THEN DATEADD(DAY,7,OrderDate)
       ELSE DATEADD(DAY,(18-(@@DATEFIRST+DATEPART(WEEKDAY,OrderDate)))%7,OrderDate)
       END
FROM Orders