select * from table where int(substr(char(字段A),1,4)) - 固定值 < 1
select * from table where (Convert(int,Left(字段A,4))-固定值)<1
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-'''+IntToStr( SysTime.wYear)+''') <1 '); 您看对么?
query1.SQL.Add('select * from Tb where int(substr(char(riqi),1,4)) - '''+IntToStr( SysTime.wYear)+''' < 1 ');这个对么?
不对。 query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-'+IntToStr( SysTime.wYear)+') <1 '); 或者 query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-:wYear) <1 '); query1.ParamByName('wYear').Value:=SysTime.wYear;
我按照您说的作了 提示 使用关键字 int,Left(riqi,4))-?)
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-:wYear) <1 '); query1.ParamByName('wYear').Value:=SysTime.wYear; ???????????出错?看清楚,是 :wYear
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-'+IntToStr( SysTime.wYear)+') <1 '); 这一句我改成 query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-2008) <1 ');还是报错使用关键字 int,Left(riqi,4))-2008)改成 query1.SQL.Add('select * from Tb where (2009-2008) <1 ');后可以通 那么就是(Convert(int,Left(riqi,4)) 这哪的问题吧?
where (Convert(int,Left(字段A,4))-固定值)<1
您看对么?
不对。
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-'+IntToStr( SysTime.wYear)+') <1 ');
或者
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-:wYear) <1 ');
query1.ParamByName('wYear').Value:=SysTime.wYear;
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-:wYear) <1 ');
query1.ParamByName('wYear').Value:=SysTime.wYear; ???????????出错?看清楚,是 :wYear
SysTime: TsystemTime;
GetSystemTime(SysTime);后来是可以得出 2008的 但是还是报错int,Left(riqi,4))-2008)
query1.SQL.Add('select * from Tb where (Convert(int,Left(riqi,4))-2008) <1 ');还是报错使用关键字
int,Left(riqi,4))-2008)改成
query1.SQL.Add('select * from Tb where (2009-2008) <1 ');后可以通 那么就是(Convert(int,Left(riqi,4)) 这哪的问题吧?
前先query1.Sql.clear;
或者
query1.SQL.text:='...
我会将作的小源码发过去给您看看哪出的问题 谢谢您了!