2015-12-21 99 views
0

我想在日期使用折叠,但下面显示的查询给予;表的值跟随与逗号与最后一个值本身。从SQL日期折叠函数,未能给出结果

同样,如果我申请Varchar价值,它工作正常。

DECLARE @Names VARCHAR(8000) 

SELECT @Names = COALESCE(CONVERT(VARCHAR(100),CONVERT(DATE,t1.StartDateTime,103)) + ', ', '') 
       + CONVERT(VARCHAR(100),CONVERT(DATE,t1.StartDateTime,103)) 
FROM tabletest t1 
where t1.StartDateTime BETWEEN CONVERT(DATE,@StartDate,103) AND CONVERT(DATE,@Enddate,103) 
SELECT @Names 

我有这样

+---------- 
|11-12-2015 | 
|12-12-2015 | 
|13-12-2015 | 
|14-12-2015 | 
|15-12-2015 | 
|16-12-2015 | 
|___________| 

我想作为输出列值...

(11-12-2015,12-12-2015,13-12-2015,14-12-2015,15-12-2015,16-12-2015) 
+0

请提供样本数据和期望的结果。 SQL Server不保证赋值给具有多行的'select'语句中的变量的值。 –

+0

提供的数据和所需的输出 –

+1

使用XML PATH串联字符串:http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string – Ingaz

回答

0

下面的代码已经解决了我的问题

DECLARE @listStr VARCHAR(MAX) 
SELECT @listStr = COALESCE(@listStr+',' ,'') + Isnull(CAST (CONVERT(DATE,SP.StartDateTime,103) as Varchar),'') 
FROM testtable AS SP 
SELECT @listStr 
GO