如你用的是table(query也是一样)
1、双击窗体中的Table1,先关闭table1,打开字段编辑器Fields Editor;
2、在Fields Editor窗口中,单击鼠标右键,选择New Fields菜单项
3、Delphi显示New Fields对话框。选择Field Type列表框中的Currency 项, 并在Field Name文体框中输入Fff , 这样我们自定义了一个 CurrencyField 类型的字段Fff。Delphi会自动地填入相应的字段对象名,其缺省值为Table1fff;
4、单击Ok按钮,关闭New Field对话框。当Fields Editor 窗口重新出现时, 注意fff已经出现在Fields列表框中
5、在table1的OnCalcFields事件中写一句
        table1fff.AsString:=formatdatetime('hh:mm:ss',table1.FieldByname('yourtimefield').asdatetime);上面的是一个改dbgrid的输出的例子,给你看看,
你把日期字段改成自己的字段用字符类型,然后在第5步里作判断,就可以搞定了。

解决方案 »

  1.   

    procedure TForm1.Table1SaleDateGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
        if tfield(sender).asdatetime<strtodatetime('2000-01-01') then
        text:='dd';
    end
      

  2.   

    嘻嘻嘻,当然有啦;
    看你想不想用嘛;
    TQRexpr
    试一试,嘻嘻嘻
      

  3.   

    OnPrint事件里写代码:
    form1.quickRep1.OnPrint;
    begin
      if Field.Value = 0 then 
         Field.Value:= '2000-1-1';
    end;
      

  4.   

    因为我使用动态的SQL 语句,在TQUERY中,说一以上方法很麻烦,能否直接用SQL 语句进行操作了???
      

  5.   

    我试了一下,用case语句必须返回一日期型值,可能行不通