一个关于SQL语名中时间的更新(35分)

  • 主题发起人 主题发起人 valatine
  • 开始时间 开始时间
V

valatine

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一条语句如下:
TDateTime T=Now();
AnsiString tmp="";
tmp=tmp+"Update SignBook set UpdateTime='"+T+"' where recordid=5";
Query->SQL->Clear();
Query->SQL->Add(tmp);
Query->ExecSQL();
Query->Close();

//UpdateTime 为DateTime 字段 用SQL Server
在win98 winme 上执行很正常,在winnt,win2000上就出错
错误为SQL不能将AnsiString转为DateTime 不知何故?我想是NT 中表示时间多
了个“上午”,“下午”因此将其转为字符串再转为时间时就出错,不知如何解决
 
你可不可以改成TDate类型?TDateTime 类型在NT下和98下不一致,但TDate类型可以,你试试吧
 
老兄,照你的方法做了,还是不行
 
为什么不用参数:

tmp=tmp+"Update SignBook set UpdateTime=:dt where recordid=5";
Query->SQL->Clear();
Query->SQL->Add(tmp);
Query->SQL->Params[0].AsDateTime = T ;
Query->ExecSQL();
Query->Close();

 
你的问题还没解决呀????
 
用参数吧,省去许多麻烦。
 
接受答案了.
 
后退
顶部