0
尋找SQL SERVER 2012中的代碼來查找ORDERS表中所有ORDERDATE的'WEDNESDAY'的下一次出現。我想出了以下內容,但它僅提供訂單日期+7天。請幫助我。尋找NEXT_DAY for Oracle到SQL Server 2012遷移的查詢
SELECT DATEADD(DD,7, CONVERT(Datetime, OrderDate, 101))
FROM Orders
尋找SQL SERVER 2012中的代碼來查找ORDERS表中所有ORDERDATE的'WEDNESDAY'的下一次出現。我想出了以下內容,但它僅提供訂單日期+7天。請幫助我。尋找NEXT_DAY for Oracle到SQL Server 2012遷移的查詢
SELECT DATEADD(DD,7, CONVERT(Datetime, OrderDate, 101))
FROM Orders
您可以使用此:
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
但此查詢返回的'04/01/2009' 年(MM/DD/YYYY),即使日期是過去的4月1日。意思是 - 儘管日期是2,3,4這一週它返回'04/01/2009'http://www.timeanddate.com/calendar/?year=2009 –
@PrincessS你是對的,請嘗試再次 – Lamak
現在我明白了。謝謝。但是,當日期本身是'04/01/2009'它返回同一日期。但我正在尋找下一個事件,所以它應該返回'04/01/2009''04/01/2009' –