2016-04-06 5 views
0

STUFF関数を使用して、特定の行のテキストを1つのセルに結合しようとしています。 VARCHAR値は正常に動作しますが、DATETIME値でSTUFFを使用するとエラーが発生します。「varcharデータ型をdatetimeデータ型に変換すると、範囲外の値が返されます。」 値をキャストしようとしましたが、期待していた値が返されません。私は、各CreatedDateに行に戻るしようとしています何SQL STUFF DATETIMEすべての値を返しません

" Mar 29 2016 9:42AM, Mar 31 2016 9:42AM, Mar 31 2016 9:43AM"

ようなものになるだろうが、それは唯一の値のいずれかが表示されています。 ..

SELECT 
[KEY] 
,STUFF((SELECT distinct ', ' + [Code] FROM #tempTable t WHERE t.[KEY]=tt.[KEY] FOR XML PATH('')),1,1,'') AS [Code] 
,STUFF((SELECT distinct ', ' + CAST([CreatedDate] AS NVARCHAR(100)) FROM #tempTable t WHERE t.[KEY]=tt.[KEY] FOR XML PATH('')),1,1,'') AS [CreatedDate] 
FROM #tempTable tt 
Group by KEY 
+1

'stuff'関数を忘れて単純に' cast(createdDate as nvarchar(100)) 'を選択するとどうなりますか –

+0

サンプルの作成日付の値を与えることができます – TheGameiswar

+0

私はキー値12345であり、その特定のキー値は3つのレコードを有する。キー12345の最初のレコードの日付はMar 29 2016 9:42 AM、2番目のレコードの日付は2016年3月31日9:42 AM、3番目のレコードの日付は2016年3月31日9:43 AMです。 – BrettKB

答えて

0

question..belowではないクエリの一部がrepro.furtherものは文句を言わないあなたのすべての問題原因がされているようだ - :ここに は私のクエリの一部であります - この

declare @dt table 
(
id datetime 
) 
insert into @dt 
select 'Mar 29 2016 9:42AM' union 
select 'Mar 31 2016 9:42AM' union select 'Mar 31 2016 9:43AM' 

select id,stuff((select ','+ id from @dt 
for xml path('')),1,1,'') 
from @dt 
..

declare @dt table 
(
id datetime 
) 
insert into @dt 
select 'Mar 29 2016 9:42AM' union 
select 'Mar 31 2016 9:42AM' union select 'Mar 31 2016 9:43AM' 

select id,stuff((select ','+ convert(varchar,id) from @dt 
for xml path('')),1,1,'') 
from @dt 

明らかにdoesntの仕事を - この、あなたのクエリでこれをやっていないの作品10

datetimeをvarcharとして格納している場所(質問に表示されていない場所)があり、datetimeに変換している間は失敗しているようです。

あなたが見ていると値が切り捨てられません(join)列を個別に参照する必要があります

関連する問題