showmessage(formatdatetime('mm/dd/yyyy',now));
 结果为09-12-2001当然不行;(win2000)
1 用  DecodeDate分解再重新作何
2 s:=formatdatetime('mm/dd/yyyy',now);
  s:=stringreplace(s,'-','/',rfReplaceAll)

解决方案 »

  1.   

    newyj,你好,可是我数据库里面存放的格式就是09-12-2001
    我不可能把数据库的riqi字段也改成你那样的呀,请问怎么办,能否告知QQ
      

  2.   

    不可能paradox的格式就是'mm/dd/yyyy'你在试试
      

  3.   

    不是了,我在数据库里面该字段用的是字符型呀,我送进去的时候是这样写的
    mydate:=formatdatetime('mm/dd/yyyy',Now);
    sql:='insert into yiying(riqi) values(:mydate)';
     s_Query1.Close;
     s_Query1.SQL.Clear;
     s_Query1.SQL.Add(sql);
     s_Query1.Params[3].AsString:=mydate;
    请问如果这样该如何解决我上面那个问题呢
      

  4.   

    不是了,我在数据库里面该字段用的是字符型呀,我送进去的时候是这样写的
    mydate:=formatdatetime('mm/dd/yyyy',Now);
    sql:='insert into yiying(riqi) values(:mydate)';
    s_Query1.Close;
    s_Query1.SQL.Clear;
    s_Query1.SQL.Add(sql);
    s_Query1.Params[3].AsString:=mydate;
    请问如果这样该如何解决我上面那个问题呢 
      

  5.   

    格式改为yyyy-mm-dd吧,从大到小,好排序。query.SQL.Add('select * from yiying where riqi>='''+formatdatetime('yyyy"-"mm"-"dd',Date-31)+''' and riqi<='''+formatdatetime('yyyy"-"mm"-"dd',Date)+''' and  type='+IntToStr(m_type));用双引号确定是-,不管Windows的日期格式用的是什么。
      

  6.   

    为什么不用日期型呢?方便还不容易出错。该为日期型后,可写为:
    插入:With Query1 do
             begin
               Close; 
              Sql.clear;
              sql.add('insert into yiyong(riqi) values(:SDate)');
              ParamsByName('SDate').AsDateTime:=Date;
              Open;        
            end;
    查询:
    With Query1 do
             begin
               Close; 
              Sql.clear;
              sql.add('Select * from yiyong Where riqi>=:Date1 and riqi<=:Date2 ');
              ParamsByName('Date1').AsDateTime:=Date1;
              ParamsByName('Date2').AsDateTime:=Date2;
              Open;        
            end;
     其中date1可以用decodedate,encodedate通过date2求出,也可简单为date2-31;
      

  7.   

    修改你的数据记录为 'yyyymmdd'
    你现在检索一定出错
    09-01-2001要小于10-11-1888