Select @SqlTxt="Select * from visiter where waiter=convert(datetime,'"+@FieldValue+"' and meettime>=conert(datetime,'" +@firDate+"' and meettime>=convert(datetime,'"+@secdate +"'" 不過,用第一句就可以了,何必要第二句這么繁呢。
Select @SqlTxt="Select * from visiter where waiter="+@FieldValue+" and meettime>=" +convert(varchar,@firDate,21)+" and meettime>="+convert(varchar,@secdate,21)
Select @SqlTxt="Select * from visiter where waiter="+@FieldValue+" and meettime>='''" +convert(varchar(19),@firDate,21)+"''' and meettime>='''"+convert(varchar(19),@secdate,21)+"'''" 第二句我不知道你的缺省字符是‘还是“,如果出错用select @SqlText 看看结果 换着试试
有點修改:Select @SqlTxt='Select * from visiter where waiter='+QUOTENAME(@FieldValue,'''')+' and meettime>=' +QUOTENAME(convert(varchar(20),@firDate,120),'''')+' and meettime>='+QUOTENAME(convert(varchar(20),@secdate,120),'''')
dreamyyuan(dreamyyuan):是这样的吗? Select @SqlTxt="Select * from visiter where waiter="+@FieldValue+" and meettime>='" +convert(datetime,@firDate)+"' and meettime>='"+convert(datetime,@secdate)+"'"可还是出错啊! 因为还有别的语句。我只列出其中的一部分。
這也是寫動態SQL需要注意的地方.
如果你沒有時間型的字段或者數值型的字段.
都只有字符型的字段,而且字符型的字段=@某某變量 (@某某變量 = '13'而非@某某變量 = 'abcd')時
你會永遠也發現不了錯誤.其實你把@SqlTxt打印出來就知道你錯在什麼地方了.
現將你的第二句修改如下,而且保證OK:Select @SqlTxt='Select * from visiter where waiter='+QUOTENAME(@FieldValue,'''')+' and meettime>=' +QUOTENAME(@firDate,'''')+' and meettime>='+QUOTENAME(@secdate,'''')
因为经过拼串以后,waiter="+@FieldValue+" 和waiter=@FieldValue是不同的你在Exec(@SqlTxt)前加一句
print @sqltext看看输出结果就明白了
换着试试
Select @SqlTxt="Select * from visiter where waiter="+@FieldValue+" and meettime>='" +convert(datetime,@firDate)+"' and meettime>='"+convert(datetime,@secdate)+"'"可还是出错啊!
因为还有别的语句。我只列出其中的一部分。