2017-08-08 27 views
1

我希望得到周開始日期和星期結束日期使用週數如何在SQL Server中使用星期編號獲取星期開始和結束日期?

例如

輸入

我的週數= 32

輸出

WeekStartingDate  WeekEndingDate 
------------------------------------ 
06-08-2017   12-08-2017 

注意

沒有日期。僅通過使用週數。可能嗎?

更新

Date Output

+0

請參考https://social.msdn.microsoft。 COM /論壇/ SQLSERVER/EN-US/cf233caf-4CCD-4bca-ADD2-b5eb467f2dd4/CONVER T-週數到日期的-1天的,是周?論壇= TRANSACTSQL。在那裏你可以找到如何獲得給定週數的日期。這並不能完全回答你的問題,但可以根據本文建議的方法構建解決方案。 –

+0

結果不一樣,因爲'@@ DATEFIRST',嘗試'SELECT @@ DATEFIRST',你會理解我的意思,當datepart是星期(wk,ww)或星期幾(dw)時,返回值取決於通過使用SET DATEFIRST設置的值。 – Sami

回答

1

我想這樣的....

DECLARE @WK INT SET @WK = 32 
    DECLARE @YR INT SET @YR = 2017 

    SELECT DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4 - 
      DATEPART(DW, DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4) + 1 AS [WEEK_STARTDATE], 

    DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4 - 
      DATEPART(DW, DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4) + 7 AS [WEEK_ENDDATEDATE] 

輸出

WEEK_STARTDATE   WEEK_ENDDATEDATE 
2017-08-06 00:00:00.000 2017-08-12 00:00:00.000 
+0

這會給你'07-08-2017'和'13-08-2017'。從startDate中刪除'+1並將+7更改爲+6' –

+0

@mohamedfaiz不,你測試了嗎? – Sami

+0

@Sami是的,我已經測試過了。我已經從這個[link](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cf233caf-4ccd-4bca-add2-b5eb467f2dd4/convert-week-number-to-date論壇= transactsql) –

相關問題