要抓狂了,时间字段的动态SQL查询问题,超级急!!!!(50分)

  • 主题发起人 主题发起人 steelg
  • 开始时间 开始时间
S

steelg

Unregistered / Unconfirmed
GUEST, unregistred user!
相关代码如下:
with form1.Query1 do
begin
close;
sql.clear;
sql.add('select TM,Z from st_river_r_z');
sql.add('where stcd=:stcd and tm between:tstart and:tend');
sql.add('order by tm asc');
parambyname('stcd').AsString:='50229350';
parambyname('tstart').Asdatetime:=strtodatetime(tstart0);
parambyname('tend').Asdatetime:=strtodatetime(tend0)+10;
open;
end;

代码中的tstart0和tend0是从文本文件中读入的查询时段的起始和终止时间
出现的错误如下:
project input.exe raised exception class edbenineerror with message “general sql error”[microsoft][odbc sql server driver][sql server] 第2行‘between@p2' 附近有语法错误

实在想不通啊!!!!
 
between:tstart and:tend
参数前面没有空格?
 
你一句一句的调试,看是哪一句出错!
应该是sql语句的问题
如果真的是strtodatetime(tstart0);出错那你看看tstart0的格式是什么样的!
 
sql.add('where stcd=:stcd and tm between:tstart and:tend');
改为
sql.add('where stcd=:stcd and tm between :tstart and:tend');
 
这空格真是坑死人啊
 
多人接受答案了。
 
后退
顶部