1

私は比較的SQLサーバーに慣れていません。開始日と終了日をフォーム変数から文字列として取得し、それを日時 (yyyy-mm-dd) 形式に変換しようとしていますが、機能するものが見つからないようです。試行されたコードと結果のエラーは以下のとおりです。アドバイスをいただければ幸いです。

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

私が取得し続けるエラーは次のとおりです。

文字列から日時を変換する際に変換に失敗しました。

これを修正するにはどうすればよいですか?

4

2 に答える 2

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
于 2012-10-12T15:10:41.657 に答える
0

必ずしもキャストする必要はありません

declare @startdate varchar(50)
declare @enddate varchar(50)
declare @start datetime = @startdate, @end datetime = @enddate
select @start, @end
于 2016-03-15T15:46:18.023 に答える