我把数据库的字段设为了时间字段,同时把DateTimePicker设为了短时间yyyy-MM-dd
原来是显示2008-10-20,现在却在DBGrid中显示了2008-10-20 14:20 把分秒都显示出来了,在Access和DateTimePicker都看不到,我也不想看到,但DBGrid中却要显示,不爽爽。

解决方案 »

  1.   

    原因就是你赋初始值的时候赋值了NOW,改成Date。DBGRID这种比较"落后"的显示控件只能把整个时间显示出来了。
      

  2.   

    BDE
      修改Field 的DisplayFormat, 或者OnGetTextSQL
      修改SQL格式化一下,不要尾巴就是
      

  3.   

    哦,也行,用得多cxTreeList忘记可以在DataSet上搞Format了 - -
      

  4.   

    好象是和datetimepicker有关,日期是运行中设定的,时间却是设计期的时间,全部一样,换一个datetimepicker 保存就出现这个datetimepicker设计的时间,晕了
    我不想动DataSet,这个东东我一点都没手动它
      

  5.   

    我就这样写的,我好久都没用Format了,
       ADOQuery1.Edit;
       ADOQuery1['dates']:=MyNDate1.date;
       ADOQuery1.Post;
      

  6.   

       ADOQuery1.Edit;
       ADOQuery1['dates']:=FormatDateTime('yyyymmdd',MyNDate1.date);
       ADOQuery1.Post;
    气死了,这样也不行,存的时候好象始终要读入时间,妈的,我在access里看不到,但DBGrid它却总是认识。我在DGGrid里改了存可以,它们搞地下工作,汗。
      

  7.   

    我Trunc()了,不知道为什么我已经默认了yyyy-MM-dd还要读时间,原来用string时不会读的,现在数据库改为DateTime很为不熟。我9楼按错了,我点错键了,9楼那样还是可以的。
      

  8.   

    在DataSet里面OnGetText 可以格式化 数据,你可以试试看!具体用法见F1
      

  9.   

    楼上说的我不明白,什么dataset
    我是DBGrid 、DataSource、ADOQuery、DateTimePicker 是不是我的东东用的太原始和低级,没有那OnGetText属性。
    我的DBGrid就是个空的,好象这样找不到field,我的Field是读进去的,
      

  10.   

    我最想不能,我明明是MyNDate1.date; 为什么还有Time虽然不是实时的而是设计期的。我用11楼OK了,但晕。
      

  11.   

    你可以在ACCESS里设置一下时间的保存格式的,
    设置format 为 Short Date
    还不行,我就不信了
      

  12.   

    ADOQuery里双击,然后CreateAllFields,就可以看到字段的事件里有OnGetText了
      

  13.   

    我想最好還是修改Field 的DisplayFormat,也可能在SQL語句中實現,如 select convert(nvarchar(20),getdate(),111)就把有時間的Datetime開轉換為了只有日期的Datetime型.
      

  14.   

    呵呵,我无法CreatallFields了,现在我各个窗口的ADOQuery和DBGrid都是空的,都是字符串读入。呵呵,这样比较少码字。因为反正时间是Float,所以我干脆我用了Trunc(xx.date)。11楼是我呀,自力更生,做了之后又分享嘛,我觉得那样费时最少,我就是奇怪,明明Access是短日期,但它还是保存了时分秒,真不知这个Microsoft在搞什么,它的短日期只是显示给我看是短日期,暗地里还是记了分钟,DateTimePicker这个xx.date也是,只是显示的是date,传的值依然是整体。以后小心了,当然用字符串没有问题,因为存的时候肯定会有格式转换。