使用StackOverflow上的另一篇文章(How to split date ranges based on months in SQL Server 2005)我運行了一條SELECT
語句,它按月分割日期範圍,並在SQL中返回2列(DateFrom, DateTo
)。SQL - 將結果轉換爲逗號分隔的字符串
DECLARE @SDate DATE = '2012/08/01'
DECLARE @EDate DATE = '2013/09/01'
SELECT
DATEADD(MONTH, n.Number, @SDate) as DateFrom,
DATEADD(day, -1, DATEADD(MONTH, n.Number, DATEADD(YEAR,-1,@EDate))) as DateTo
FROM
master.dbo.spt_values n
WHERE
n.Number < DATEDIFF(MONTH, @SDate, @EDate)
AND n.Type = 'P'
我現在需要每個返回的行添加到字符串由|
(Dateto|Datefrom
)分離柱和,
每一行。
例如,如果你運行的結果上面的代碼是(只是在這個例子中我只是在使用的前4行,但我需要所有的人都在一個字符串):
R | Date From | Date To
1 | 2012-08-01 | 2012-08-31
2 | 2012-09-01 | 2012-09-30
3 | 2012-10-01 | 2012-10-30
4 | 2012-11-01 | 2012-11-30
代碼:
DECLARE @stralldates VarChar(MAX)
/* SET @stralldates = INSERTCODE */
PRINT @stralldates
我需要打印的內容返回:從
2012-08-01|2012-08-31,2012-10-01|2012-10-30,2012-10-01|2012-10-30,2012-11-01|2012-11-30
我嘗試了好幾種建議關於StackOverflow的其他類似問題(例如CONCAT
)沒有成功。
任何幫助或建議,將不勝感激。
感謝您的幫助,這正是我需要的! –