我在SQL库上建test表,字段date为日期型
----------------------------------------------
adoquery1
  SQL:insert into test values(:d1)
  Parameters:d1
             DataType:ftDateTime                
-------------------------------------------------with adoquery1 do
begin
  close;
  Parameters[0].Value:=d_date;
  execsql;
end;运行提示出错,请问如何解决

解决方案 »

  1.   

    insert into test (字段列表...) values(:d1)
      

  2.   

    Parameters[0].Value:=StrToDateTime(d_date);
      

  3.   

    为什么不用字符串类型存储,并且和datatostr等函数解决这个问题!
      

  4.   

    直接用SQL语句,不用参数,但是数据插入的过程中TDataTime数据要转换成String;
      

  5.   

    insert into test(字段) values(:d1)
      

  6.   

    如果你用的是 ADOQuery 那就好办了直接 SQL 写入就可以。
    ADOQ1.Sql.text:='Select * From test';
    ADOQ1.Open;
    ADOQ1.Append;
    ADOQ1.FieldByName('ADDTime1').AsDateTime:=now;
    ADOQ1.Post;
    ADOQ1.Close;
      

  7.   

    With ADOQry do 
    begin
      if Active then Close;
      SQL.Clear;
      SQL.Add('Insert into Test(字段) Values(:d1)');
      Parameters.ParaByName('d1').Value := d_date;
      ExecSQL;
    end;
      

  8.   

    因为默认添加的时候DATETIME字段是包括日期和时间的 你添加的时候所用的数据类型最好是字符串类型的
      

  9.   

    sql语句中时间要用单引号引起来。
      

  10.   

    试试这个:
      Parameters.ParaByName('d1').Value := formatdatetime('yyyy-MM-dd',d_date);
      

  11.   

    看看参数的位置是否匹配,第一个参数是否是DLftDateTime 应该兼容TDateTime类型,所以看看ShowMessage(DateToStr(d_date));如果没有问题,那就不是类型兼容的问题了,因为Value是Variant类型的 可以自动进行类型转换!