2012-10-12 73 views
1

我是比較新的SQL服務器;我試圖將一個開始日期和結束日期從一個表單變量拉到字符串然後將其轉換爲日期時間(yyyy-mm-dd)格式,我似乎無法找到任何可行的方法。嘗試的代碼和產生的錯誤如下。任何意見,將不勝感激。如何將字符串變量轉換爲sql-server中的datetime變量?

declare @startdate as varchar 
declare @enddate as varchar 
set @startdate=cast(@startdate as datetime) 
set @enddate=cast(@enddate as datetime) 

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate 

我不斷收到的錯誤是:從字符串轉換日期時間時

轉換失敗。

我該如何解決這個問題?

+0

你需要指定一個長度爲您的變量與阻止他們被截斷開始1個字符。 'yyyy-mm-dd'在'datetime'的所有語言環境中都不起作用。 'yyyymmdd'更強大。 –

+0

http://msdn.microsoft.com/en-us/library/ms187928.aspx –

回答

1

指定您varchar長度:

declare @startdate as varchar(10) 
declare @enddate as varchar(10) 
set @startdate=cast(@startdate as datetime) 
set @enddate=cast(@enddate as datetime) 

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate 
0

你不必一定投

declare @startdate varchar(50) 
declare @enddate varchar(50) 
declare @start datetime = @startdate, @end datetime = @enddate 
select @start, @end 
相關問題