代码入下:
scomtime:='#'+FormatDateTime('mm/dd/yyyy hh:nn:ss',now)+'#';
sSql:='insert into customer (cometime) values('+scomtime+')';
cometime是日期/时间类型的,scomtime是字符串类型的
很奇怪没有时间时却没有错。

解决方案 »

  1.   

    Access 的日期格式有规范的,如果你需要使用 mm/dd/yyyy 格式,在 Access 的字段属性里得写好。
      

  2.   

    我试过了,没有错啊!
    你是不是用ODBC的DSN连接的数据库,这样应该用ODBC转义字符串:
    日期:
    {d 'yyyy-mm-dd'}
    时间:
    {t 'hh:nn:ss'}
    时期+时间(timestamp):
    {ts 'yyyy-mm-dd hh:nn:ss'}
      

  3.   

    inshua:
    我记得Access字段属性中设的时间格式只是显示格式。在Access中的时间表示上楼主的写法没有错。
      

  4.   

    学到,不过,如果用 dd/mm/yyyy 的英国写法,可以识别吗?
      

  5.   


    你的adoquery或者query的属性ParamCheck设成false
      

  6.   

    我不是用的odbc,这是一个客户端的sql,数据库通过中间层连的
        scomtime:='#'+FormatDateTime('mm/dd/yyyy hh:nn:ss',now)+'#';
        sSql:='insert into customer (cometime) values('+scometime+')';
        dmCheckin.cdsCheckin.Close;           cdscheckin是clientdataset
        dmCheckin.cdsCheckin.CommandText:=sSql;
        dmcheckin.cdsCheckin.Execute;
    我现在只能单独插入日期加上时间 或单独插入时间都不行。
    access数据库中cometime我设置了类型后其他没有动。
    不知道怎么办了?
      

  7.   

    算了,我有一个好办法,直接用 Double 型,我记得在 SQL Server 里,是成功的
      

  8.   

    我以前也遇到这样的问题,我建议你不要用动态的语句
    用 query.sql.add('select * from tab where date > :date')
    query.....
    这样的不会报错,曾经这个问题搞的我头都大了
      

  9.   

    我把我程序里生成的sql语句放到access里面都是可以的,为什么在程序里会报错呢?郁闷!!
      

  10.   

    你试试直接用字符行表示,可能成功!!!
    formatdatetime('mm''/''dd''/''yyyy hh:nn:ss',now)
    可以吧
      

  11.   

    把#换成单引号
    scomtime:=''''+FormatDateTime('mm/dd/yyyy hh:nn:ss',now)+'''';
    sSql:='insert into customer (cometime) values('+scomtime+')';
      

  12.   

    谢谢死树。hoho 
    真是太感谢你了!!!!!