2015-07-06 28 views
0

我試圖將參數日期放入臨時表中。 但總是得到轉換失敗。SQL轉換未能插入參數-date

有沒有關於日期時間轉換的建議? 感謝

--*********************************************************************************************************** 
Declare @dblQuote as varchar(4) 
Declare @sDate as varchar(10) 

Declare @sSQL_tmpHCDetails nvarchar(max) 


Select @dblQuote = '''' 

-- #tmpHCDetails *********************************************************************************************************** 
Declare @StartDate datetime ='7/6/2015 12:00:00 AM' 

IF IsNull(Object_Id('tempdb..#temptb'),0) <> 0 DROP TABLE #temptb; 

create table #temptb 
(
sDate datetime 
); 


set @sSQL_tmpHCDetails='INSert into #temptb (sDate) ' 
set @[email protected]_tmpHCDetails+ 'select Convert(DateTime,'+ @dblQuote + @StartDate + ' 23:23:59 ' + @dblQuote + ',108)' 



exec @sSQL_tmpHCDetails 

select * from #temptb 
+0

做你嘗試沒有dymanic'選擇轉換爲執行這段代碼(日期時間, '+ @dblQuote + @StartDate +' 23時23分59秒 '+ @dblQuote +' ,108)'? –

+0

from above above you got more more _varchar(10)_嘗試將其更改爲_varchar_(20)等。 –

+1

'@ StartDate'是'DATETIME','@ sSQL_tmpHCDetails'是一個字符串。你不能在'set @ sSQL_tmpHCDetails = @ sSQL_tmpHCDetails +'選擇Convert(DateTime,'+ @dblQuote + @StartDate +'23:23:59'+ @dblQuote +',108)''這兩行。您必須將'@ StartDate'轉換爲'varchar' –

回答

0

Your Solution....

Declare @dblQuote as varchar(4) Declare @sDate as varchar(10)

Declare @sSQL_tmpHCDetails nvarchar(max)

Select @dblQuote = ''''

-- #tmpHCDetails *********************************************************************************************************** Declare @StartDate datetime ='7/6/2015 12:00:00 AM'

SELECT CONVERT(VARCHAR(20),@StartDate,107)

IF IsNull(Object_Id('tempdb..#temptb'),0) <> 0 DROP TABLE #temptb;

create table #temptb ( sDate datetime );

set @sSQL_tmpHCDetails='INSert into #temptb (sDate) '

set @[email protected]_tmpHCDetails+ 'select Convert(DateTime,'+ @dblQuote + CONVERT(VARCHAR(20),@StartDate,107) + ' 23:23:59' + @dblQuote + ',108)'

exec(@sSQL_tmpHCDetails) select * from #temptb