呵呵,
我没用过dBase你这样试试看Select * from abc
Where date >= #2002-02-02#

解决方案 »

  1.   

    这样试试:
    Select * from abc
    Where date >= {^2002-02-09}
      

  2.   

    这跟你的Date类型有关系的,,,
      

  3.   

    如果你的数据库是access
    Select * from abc
    Where date >= #2002-02-02#
    如果是其它的
    ...
    query1.sql.add('select * from abc where date >= :d1');
    query1.parabyname('d1').asdatetime:=strto('2002-02-02');
    query1.open;
      

  4.   

    query1.parabyname('d1').asdatetime:=strtodate('2002-02-02');
    呵呵,这样就全了,楼上给丢了点东西
      

  5.   

    首先谢谢上面的朋友!
    我使了都不行啊。
    to njbudong(午夜游民) :你可不可以详细点说说有哪些关系
    to netlib(河外孤星)   :到最后第二句的时候编译出错
    [Error] Unit1.pas(89): Undeclared identifier: 'parabyname'
    [Error] Unit1.pas(89): Missing operator or semicolon
    [Error] Unit1.pas(89): Undeclared identifier: 'strto'
    [Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'
      

  6.   

    应该是:
    Query1.ParamByName('d1').asdatetime:=strtodate('2002-02-02');
      

  7.   

    因为dBase是比较低的数据存储版本,对标准的SQL支持不是很好,BDE支持也不是很好,如果你用foxcase等低版本的工具可能会好点;
    一般dBase对日期的支持是两位年的,你的这种情况完全可以用varchar类型来存储日期可能会好点..
      

  8.   

    回复人: Snakeguo(楠--莫等闲、白了少年头,空悲切。) 
    谢谢你的回贴!编译是能过了。但是在运行的时候出错了,提示为:
    Project2
    Invalid use of keyword.
    Token: select
    Line Number:3.是什么意思?应如果解决?谢谢!
      

  9.   

    为什么不用SQL SERVER 呢?
      

  10.   

    回: gs571(阿胜)
    我是很想学SQL SERVER的,以后很请你多帮忙。
    可是这个程序本身很简单,只是这个日期问题解决不了。
      

  11.   

    哎!
    我刚才都已经说了,delphi传入的date类型和dbase中的类型不兼容的,你用char类型好了,可以根本解决问题的
      

  12.   

    回:njbudong(午夜游民)
    办法是挺好的,谢谢你了,就按你的办吧。
      

  13.   

    where "date" > "6/20/2000"保留字段名用双引号括起来,日期表达方式如上。
      

  14.   

    回:lzc()    我的数据表的DATE字段中有年份为2001和2002的若干个日期,但是运行好像不正确:
    select * from lc
    where "date" >= "1/1/2002"  
    结果显示了所有的记录select * from lc
    where "date" <= "1/1/2002"  
    结果一条记录也不显示我把日期格式换成“2002-1-1”也没用。在LC数据表中的日期格式为“YYYY-MM-DD”,为什么回出现这种错误?应如何解决?是不是真像楼上兄弟所说的date类型和dbase中的类型不兼容的缘故。
    谢谢!
      

  15.   

    Select * from abc
    Where date >= :FdateParamByName('FDate').asFloat:=StrToDate('2002-1-1');
      

  16.   

    如果还不行就用:SQL.Add('Select * from abc ');
    SQL.Add('Where date >= '+FloatToStr(StrToDate('2002-1-1')));除非 dbase 不把日期当浮点数处理!
      

  17.   

    回 johnsonrao(johnson) :
    谢谢你的帮助下班了我回去试试。
      

  18.   

    修正一下
    select * from abc
    where abc."date" > "6/20/2000"
    我已经测试过了
      

  19.   

    在SQL中日期的格式是:M/D/YYYY  所以应用:
    Select * from abc
    Where date >= '2/30/2002'
      

  20.   

    你试试下面的
    query1.sql.add('select * from abc where date >= :mydate');
    query1.params[0].asdatetime:=strtodate('2002-02-02');
    query1.open;
      

  21.   

    用条语句:
    Select * from abc
    Where to_CHAR(date,'YYYYMMDD') >= '20020202'
    或者是用
    Select * from abc
    Where date >= to_date('20020202','yyyymmdd')
    不就结了。
      

  22.   

    'select * from abc where date= :cdate'
    parameters.parambyname('cdate').value:=strtodate('2002-02-02')
      

  23.   

    谢谢各位!
    特别感谢 lzc() 朋友。
    查询是可以了,但是在添加记录的时候, date类型的又有麻烦了。
    insert into lc (date)
    values ("01/01/2001")
    这样不行,但是如果是字符或者数值类型的,都可以添加的,谢问日期类型的应该怎么写?