dbgrid字段显示格式问题(100分)

  • 主题发起人 主题发起人 bigfeng
  • 开始时间 开始时间
B

bigfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
有一字段内容为“年月日时分”即“200609061110”用query显示出来后,要把它变成

2006年09月06日11时10分,该如何做?
 
用DecodeDate和DecodeTime函数
var
wdYY,wdMM,wdDD: Word;
wdHH,wdMi,wdSS,wdTmp: Word;
strDate: String;
begin
DecodeDate(取回的日期,wdYY,wdMM,wdDD);
DecodeTime(取回的日期,wdHH,wdMi,wdTmp);
strDate := Format('%s年%2s月%2日%2s时%2s分',[wdYY,wdMM,wdDD,wdHH,wdMi]); //就是2006年09月06日11时10分
end;
 
是在DBGRID里显示的
 
这个似乎有困难的...
不过既然你把时间存成了“200609061110”格式,所以我觉得你用的数据库字段应该是字符型的,那么为什么不直接把这个字符串写成“2006年09月06日11时10分”进行存储呢?
 
假设你和dbgrid连接的数据表是adotable,你为当前form建立一个下面的过程,
procedure TForm1.FormCreate(Sender:TObject);
begin
ADOTable1.FieldByName('收银员').OnGetText:=myprocedure;
end;
procedure TForm1.myprocedure(Sender:TField; var Text:string; DisplayText:Boolean);
var t1:string;
begin
t1:=Sender.AsString
Text:=copy(t1,1,4)+'年'+copy(t1,5,2)+'月'+copy(t1,7,2)+'日'+copy(t1,9,2)+'时'+copy(t1,11,2)+'分';
end;
这样就可以了
 
我不是用的ado,我是用的query,该怎么做?
 
一样的。
 
d7以上有个全局变量 dateformate //我在网吧 记不准确了
在任何地方 dateformate:='YYYY年MM月dd日hh时ss分'
就可以了 这个全局变量影响 datetostring()的输出结果
也影响 Tfield.asstring 的结果 dbgrid 显示时间就用Tfield.asstring
若没设定 结果格式为OS设置的时间格式
 
不好意思,我是delphi 5
 
回家了!是变量ShortDateFormat
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
swish
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
后退
顶部