2012-08-26 316 views
1

我想通過給出兩個日期來在我的java程序中執行我的MSSQL存儲過程,在這兩個日期之間進行選擇。因此,在Java代碼中我繼續這樣的:將nvarchar轉換爲datetime時出錯

"EXEC [dbo].[MyProcedure] " + "'"+ dateFrom+"'" ,"'"+dateTo"'" 

我宣佈我像這樣的SQL服務器程序參數:@collected_date1 datetime, @collected_date2 datetime。 我選擇了兩個日期是這樣的:

SELECT @date1 = Convert(varchar(23),@collected_date1,121) 
SELECT @date2= Convert(varchar(23),@collected_date2, 121) 

不過,我有這樣的錯誤消息:Error converting data type nvarchar to datetime

你能幫助我嗎? 謝謝

+0

「dateFro m'和'dateTo'在EXEC語句中看起來像一次?我假設它們是表示日期的字符串,但是這些日期的格式是什麼?也許引擎無法使用當前的區域設置和/或日期格式轉換它們。 –

回答

2

對上述說法,你聲明的變量

@ collected_date1日期時間, @ collected_date2日期時間

,當你設置你轉換數據類型爲varchar所以它給你錯誤

如果你想設置你應該使用的日期時間數據類型

SELECT @date2= Convert(datetime,@collected_date2, 121) ; 
+0

謝謝你,現在回答你的問題,但是我遇到了另一個問題:「從字符串轉換日期和/或時間時轉換失敗」。我給我的日期參數這種格式「yyyy-mm-dd」。任何想法糾正這個請。非常感謝 – Abdousoft

+0

轉換(DATETIME,CONVERT(VARCHAR(2),@Month)+'/'+ CONVERT(VARCHAR(2),@Day) +'/'+ CONVERT(VARCHAR(4),@Year) )' –

+0

這是另一個'SELECT convert(datetime,@ collected_date2 + '00:00:00',120) - yyyy-mm-dd hh:mm:ss(24h)' –

相關問題