ado+firebird 写入日期时间字段丢失时间问题的解决方式

ADO+Firebird 写入日期+时间 按照普通方式只能写入日期 2016-09-23 而不能写入时间 08:45:23,
写入代码如下

     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('Update CYCARTBL set OPDATE1=OPDATE1 where spname=''A001''');
     ADOQuery1.Parameters.ParamByName('xOPDATE1').Value:=  now;
     ADOQuery1.ExecSQL;

其中 OPDATE1 类型为 timestamp .

若需要同时写入日期和时间2016-09-23 08:45:23 则只能按照下面方式才能写入

//ADO+Firebird 写入日期+时间 第一种方式

     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('Update CYCARTBL set OPDATE1=:xOPDATE1 where spname=''A001''');
     ADOQuery1.Parameters.ParamByName('xOPDATE1').DataType:= ftstring;
     ADOQuery1.Parameters.ParamByName('xOPDATE1').Value:=  formatdatetime('YYYY-MM-DD HH:NN:SS',now);
     ADOQuery1.ExecSQL;

//第二种方式 USES 需加入 adoint

     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('Update CYCARTBL set OPDATE1=:xOPDATE1 where spname=''A001''');
     ADOQuery1.Parameters.ParamByName('xOPDATE1').ParameterObject.Type_ :=adDBTimeStamp;
     ADOQuery1.Parameters.ParamByName('xOPDATE1').Value:=  now;
     ADOQuery1.ExecSQL;

以上三种方式均在D7下测试通过。

你可能感兴趣的:(ado+firebird 写入日期时间字段丢失时间问题的解决方式)