2016-11-22 61 views
0

我有一個選擇查詢。SQL查詢 - 僅限選擇日期

SELECT 
    NEXT_SUN = DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260') 

從這個查詢我只想選擇日期

回答

2

您可以嘗試使用CONVERTDATE選項。

SELECT NEXT_SUN = CONVERT(DATE,DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260'))

您還可以使用Format()來獲得期望的結果。如果你想把你的返回值轉換成varchar,你也可以使用CONVERT。這方面的更多細節here

1

只需使用convertcast功能將其轉換爲date數據類型從datetime

SELECT NEXT_SUN = convert(date,DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, 
           '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260')) 
1
SELECT NEXT_SUN = CAST(DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260') AS DATE) 
1

你也可以試試這個和CONVERT功能終於獲得通過的日期代碼不同的格式

SELECT 
NEXT_SUN = CONVERT(VARCHAR(10),DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260'),101) 
1

嘗試..

SELECT NEXT_SUN = CONVERT(VARCHAR(10),DATEADD(day, (8 + @@DATEFIRST - DATEPART(dw, '2016-11-22 10:38:34.260')) % 7, '2016-11-22 10:38:34.260'),101)