3个 edit1  edit2 edit3分别显示 年 月 日! 假设数据库名字 db1 字段名 riqi 该如何写?

解决方案 »

  1.   

    var
      ADate: TDateTime:
      AYear, AMonth, ADay: Word
    begin
      ADate := ADataSet.FieldByName('riqi').AsDateTime;
      DecodeDate(ADate, AYear, AMonth, ADay);  edit1.Text := IntToStr(AYear);
      edit2.Text := IntToStr(AMonth);
      edit3.Text := IntToStr(ADay);
    end;
      

  2.   

    方法1:
    edit1.text:=FormatDatetime('yyyy',Query1.FieldByName('Riqi').AsDatetime);
    edit2.text:=FormatDatetime('mm',Query1.FieldByName('Riqi').AsDatetime);
    edit3.text:=FormatDatetime('dd',Query1.FieldByName('Riqi').AsDatetime);
    方法2:
    TQuery的Sql:Select Convert(varchar(10),riqi,120) as riqi
    edit1.text:=Copy(Query1.FieldByName('Riqi').AsString,1,4);
    edit2.text:=Copy(Query1.FieldByName('Riqi').AsString,6,2);
    edit3.text:=Copy(Query1.FieldByName('Riqi').AsString,9,2);
    可能有笔误,用时测试一下
      

  3.   

    TQuery的Sql:Select Convert(varchar(10),riqi,120) as riqi from 表 
      

  4.   

    procedure GetDateTimestring(str: TDate); //str是你从数据库中得到的时间
    var
      sYear,sMonth,sDay : String;
    begin
       sYear := FormatDateTime('yyyy',str);
       Edit1.Text := sYear ;   sMonth := FormatDateTime('MM',str);
       Edit2.Text := sMonth ;   sDay := FormatDateTime('DD',str);
       Edit3.Text := sDay ;
    end;