我在ACCESS(用ADO连接的)数据库一个表中设个了某个字段为短时间型,即只显示时间,不显示日期,
但是在DBGrid中自动会给你加上日期,1899-..-..    请问怎么不让它显示这个日期,只显示时间啊?
另外也问一下怎么让它只显示日期,不显示时间.
谢谢!

解决方案 »

  1.   

    可是是你添加一个记录的时候就自动带上的.
    添加数据:Insert Into Tablename(vTime) Values('#'+StrToTime(Time)+'#')
    这样在数据库中就只存在时间而没有日期.
    如果要存日期的话同样的道理
    或者用DateTimeFormat函数也可以的
      

  2.   

    设置连接DBGrid的adoquery/adotable,把它相应字段的displayformat设置成yyyy-mm-dd
      

  3.   

    设置字段或DBGRID列的DISPLAYFORMAT属性。具体可以查帮助
      

  4.   


    procedure TfrmMain.FormCreate(Sender: TObject);
    begin
    DBGrid.DataSource.DAtaSet.FieldByName('xxxxxxx').DisplayFormat:='hh:mm:ss'
    end;
      

  5.   

    DBGrid.DataSource.DAtaSet.FieldByName('xxxxxxx').DisplayFormat:='hh:mm:ss'怎么不行啊,说没有displayformat这个属性,
    请教到底该怎设置啊,
    谢谢!
      

  6.   

    DBGrid1.DataSource.DataSet.FieldByName('xxxxxxx').DisplayFormat:='hh:mm:ss';
      

  7.   

    还是不行啊,说displayformat没有声明,要在uses里面加什么吗?
      

  8.   

    我真想把你這只菜鳥切了煮了包湯吃!DBGrid.DataSource.DAtaSet.FieldByName('xxxxxxx') 返回一個TField對象.
    TField對象當然沒有DisplayFormat的屬性啊!你將它強制轉換不就可以了???要學會看Delphi幫助啊 , 老大! 去看看DisplayFormat的幫助說明!procedure TfrmMain.FormCreate(Sender: TObject);
    begin
      TDateTimeField(DBGrid.DataSource.DAtaSet.FieldByName('xxxxxxx')).DisplayFormat:='hh:mm:ss'
    end;
      

  9.   

    但你要确保DBGrid.DataSource.DAtaSet.FieldByName('xxxxxxx')) xxxx字段為日期類型
      

  10.   

    直接在grid所连接的数据集上,双击,在新打开的小窗口上右键,选择添加所有字段。然后只要选择你要格式的那个字段,那里就有个DisplayFormat的属性。改为 hh:mm:ss 或者 yyyy-mm-dd
    //自己试试吧...