2016-04-27 69 views
-1

我正在尋找一種方法來在SQL Server中返回工作日的短日期值。如何從當天獲取本週的日期

例如,如果當天是「星期三」,那麼我想要返回當週星期三的日期。假設星期一是一週的第一天。

希望這是有道理的。

謝謝。

+0

計算差異示例1 /週一是所需的,今天2 /週二,所以你有'1-2 == -1'),將此值添加到當前日期(即'getdate()+ -1') –

+0

你會怎麼稱呼它?是否有一個表格列或參數類型的內容「星期三」?如果你的解決方案將被安裝在另一種文化中呢? – Shnugo

回答

1

我敢肯定有一個更好的解決方案,但是這給你你想要的結果:

Declare @DayOfWeek Varchar (10) = 'Wednesday' 

;With Date (Date) As 
(
    Select Convert(Date, DateAdd(Week, DateDiff(Week, 0, GetDate()), 0) - 1) Union All 
    Select DateAdd(Day, 1, Date) 
    From Date 
    Where Date < DateAdd(Day, 6, DateAdd(Week, DateDiff(Week, 0, GetDate()), 0) - 1) 
) 
Select Date 
From Date 
Where DateName(WeekDay, Date) = @DayOfWeek 

結果:一週所需的一天和一週的當天(用於之間

Date 
2016-04-27 
+0

謝謝。這對我行得通! – Pipe2Path