我使用
s := 'select * from CTDC where D_XFRQ = :'+DateToStr(Date);
qryMaster.SQL.Add(s);
qryMaster.Open;
可是老提示当前日期类型不明

解决方案 »

  1.   

    s := 'select * from CTDC where D_XFRQ = '''+DateToStr(Date)+'''';
      

  2.   

    应该转换成月-日-年的格式。
    比如是12/30/2003'select * from CTDC where D_XFRQ = '''+12/30/2003+'''';
      

  3.   

    s := 'select * from CTDC where D_XFRQ = '''+DateToStr(Date)+'''';
      

  4.   

    其实换成s := 'select * from CTDC where D_XFRQ ='+DateToStr(Date);
    就不会出错了
    但是查询不出东西来。我用跟踪的方式,使用SQL的查询分析器发现数据库的日期字段居然会是这样:
    2004-08-04 00:00:00.000
    难怪不匹配了。可是我用SQL的企业管理器查看日期字段又是正常的。这可如何是好啊?
      

  5.   

    最后这种写法在语法上是没什么错误,但是查出的接挂不会正确。
    你这样
        {
             s := 'select * from CTDC where D_XFRQ =:dat';
             qryMaster.SQL.Add(s);
             qryMaster.parambyname('dat').value:=Date;
             qryMaster.Open;
        }
      

  6.   

    s := format('select * from CTDC where D_XFRQ = ''%s'' ',
                 [formatdatetime('YYYY-MM-DD',date)]);
      

  7.   

    使用
             s := 'select * from CTDC where D_XFRQ =:dat';
             qryMaster.SQL.Add(s);
             qryMaster.parambyname('dat').value:=Date;
             qryMaster.Open;
    可以完成查询,但是在DBGird中显示日期和时间字段时会出错,怎么办?难道只有不显示日期和时间字段吗?
      

  8.   

    s :=Format( 'select * from CTDC where D_XFRQ =''%S''',[FormatDateTime('yyyy-mm-dd',date)])
      

  9.   

    s :=Format( 'select * from CTDC where D_XFRQ =''%S''',[FormatDateTime('yyyy-mm-dd',date)])
    和我上面用的效果一样,可还是无法在DBGird中正常显示日期字段
      

  10.   

    这个要看是什么数据库系统了
    oracle 
    可以使用 to_char(字段名称,'yyyy-mm-dd')='2004-08-04' 格式自己定义吧sql server
    你直接使用 #2004-07-04# 就可以了具体的日期和字符转换函数StrToDate,DateToStr 使用方法看帮助! 要习惯看帮助...,这样你会进步的越快
      

  11.   

    s :=Format( 'select * from CTDC where D_XFRQ =''%S''',[FormatDateTime('yyyy-mm-dd',date)])