各位朋友,小弟用Database Desktop这个工具,来对一个DBF的表进行查询,其中该DBF表有一个字段为日期型字段,我查询语句如下,但系统却提示:“frtype mismatch in expression”自己的查询语句如下:
select  * from APPLE  where CSFDATE<='1990-1-1'
另外,问多一个问题,假如想将所有日期小于1990-1-1的所有记录,统一更新日期为1999-1-1,SQL语句又该如何写呢?诚心请各位朋友赐教,谢谢!(提示:所有语句都是在DELPHI自带的Database Desktop里面进行的,并不是SQL SERVER自带的查询分析器,谢谢!)

解决方案 »

  1.   

    Update APPLE SET CFDDATE='1999-1-1' WHERE CFSDATE<'1990-1-1' 
      

  2.   

    这样试一下:
    查询:select  * from APPLE  where CSFDATE <=#1990-1-1#
    更新:Update APPLE SET CFDDATE=#1999-1-1# WHERE CFSDATE <#1990-1-1#
      

  3.   

    查了下资料,发现应该这样:
    查询:select  * from APPLE  where CSFDATE <="1990-1-1"
    更新:Update APPLE SET CFDDATE="1999-1-1" WHERE CFSDATE <"1990-1-1"
    即使用双引号作为时间值的分隔符。
    #号作时间值分隔符好像是Access的用法。
      

  4.   

    Database Desktop最好使用参数的形式query.sql.clear;
    query.sql.add('select  * from APPLE  where CSFDATE <=:aDate');
    query.params.parambyname('aDate').value:='1990-1-1';
    ...