一个简单问题,我却解决不了,气死我了(15分)

  • 主题发起人 主题发起人 zikao419
  • 开始时间 开始时间
Z

zikao419

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是assess库其中一个表中有一个字段是日期/时间型(格式是短日期),我把datatimepick的time的
属性设成了0:00:00 通过datatimepick控件向库中添加日期字
段,但是每次都带有系统时间,如何去掉时间,
 
设置字段默认值。
 
to 大梦
如何设置
 
给你参考一下:
使用以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=timetostr(datetimepicker1.time);
end;
label1显示的是时间;
使用以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=datetostr(datetimepicker1.time);
end;
label1显示的是日期;
 
zhcg说的没错,你要做的不是要在写入数据库的时候去掉时间,而是应该在显示的时候屏蔽掉时间。TDateTime类型本来就包含日期和时间,两者是不可能一分为二的。
 
写如库时取 datetimepicker1.date 即可得到日期
 
datatimepick控件有个属性可以设置是取日期还是时间,你找找看。
楼上说的对:datetimepicker1.date就可以的到日期
 
这个问题我遇到过,经过实验,已完全解决:
例如:
使用代码:adoquery1.fieldbyname('日期').value:=datetimepicker1.date;
数据库日期字段中会出现时间;
如果使用代码:
adoquery1.fieldbyname('日期').asstring:=datetostr(datetimepicker1.date);
时间就没有了!
可以给分吗?
 
把字段设为字符型,存入数据库时用
FieldByName('DateFieldName').AsString := FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date) ;
FieldByName('TimeFieldName').AsString := FormatDateTime('hh:nn:ss',DateTimePicker2.Time) ;

显示时:
DateTimePicker1.Date := StrToDate(FieldValues['DateFieldName']) ;
DateTimePicker2.Time := StrToTime(FieldValues['TimeFieldName']) ;

这样做的好处是,在不同的机器上日期的显示不会因各机器的日期格式设置不同而不同。
 
后退
顶部