From Date と To Date の 2 つの変数を設定しようとすると問題が発生します。1 つの問題を解決すると、もう 1 つの問題も簡単に解決できます。エラーが発生します:
nvarchar 値 '06/30/2012' をデータ型 int に変換するときに変換に失敗しました。
ビューを使用してさまざまなテーブルをまとめてから、必要なテーブルを を介して実行していることは注目に値しsp_executesql
ます。クエリを印刷すると、 が 0 として認識されていることがわかります@fromdate
。おそらくそれが問題です..
declare @fromdate nvarchar
declare @todate nvarchar
select @fromdate = '03/01/1999'
select @todate = ''
IF @fromdate <> ''
BEGIN
SELECT @sql = @sql + ' and convert (nvarchar,document_Date,101) > '+@fromdate+''
END
if @todate <> ''
BEGIN
SELECT @sql = @sql + ' and convert(nvarchar,document_date,101) > '+@todate+''
END
列document_date
は日時です。何か案は?もしそうなら、なぜこれが起こっているのかを説明していただけますか? 以下に印刷SQLを含めました。
SELECT [system_status]
,[document_status_code]
,[rpt_category]
,[category]
,[user_status_cd]
,[user_status]
,[assigned_to_id]
,[assigned]
,[assigned_to_date]
,[owner_id]
,[owner]
,[rpt_acct_code]
,[acct_name]
,[rpt_title]
,[job_name]
,[logged_time]
,[rpt_format_type]
,[rpt_run_id]
,[rpt_doc_id]
,[rpt_id]
,[rpt_filename]
,[rpt_file_path]
,[rpt_run_name]
,[sla_start_date]
,[sla_due_date]
,[sla_completed_date]
,[sla_status]
,[SLA_Days]
,[Document_Date]
FROM VW_Document_Main
WHERE 1=1 and convert (nvarchar,document_Date,101) > 0
order by document_status_code ,owner_id