我现在想用dbgrid表示日期形式是YYMMDD也就是说你每次输入6位数就能正确表示日期,
进行保存并且在后台看来是YY-MM-DD,还有就是把后台数据库的日期格式用DBedit显示
出的时候也是怎么6位数

解决方案 »

  1.   

    在字段的ONSETTEXT和ONGETTEXT写语句转换。
      

  2.   

    现在是我输入的格式就要是YYMMDD比如现在在DBEDIT的编辑框里就输入030327然后在以日期格式进行保存
    后台数据库保存为2003-03-27
      

  3.   

    保存的时候这样操作
    Formatdatetime('yyyy-mm-dd',strtodatetime(copy(dbedit.text,1,2)+'-'+copy(dbedit.text,3,2)+'-'+copy(dbedit.text,5,2)));
      

  4.   

    数据库中允许YYMMDD的存储方式吗?如果你只是想在表示方式上作改动的话,我估计使用db控件肯能不好用。一个方法是增加一个计算字段,把原来的字段隐藏起来,通过这个计算字段得到你要的格式,并把用户输入的格式转化为数据库中存储的格式。
      

  5.   

    我深有同感,兄弟,有两方案:
    1、干脆将它设为VARCHAR型,用时再用STRTODATE即可;
    2、若是datetime就用FommatDateTime('yyyy-mm-dd',YourDateTime),这样就得到了日期给分吧
      

  6.   

    我上面提到的方法不可以吗?
    ongettext
    {
      Text=Field->AsDateTime.FormatDateTime("yymmdd");
    }
    onsettext
    {
      Field->AsString=FormatDateTime("yyyy-mm-dd",StrToDateTime(copy(Text,1,2)+"-"+copy(Text,3,2)+"-"+copy(Text,5,2)));}