var
v: Variant;
d: TDateTime;
begin
//无问题
d:=strtodatetime('2001/12/31 02:53:39');
v:=d;
DBEdit1.Field.Value:=v; (uuu) //有问题
d:=strtodatetime('0001/12/31 02:53:39');
v:=d;
DBEdit1.Field.Value:=v; (xxx)end;DBEdit1是一个DateTime类型的字段,语句XXX异常
v: Variant;
d: TDateTime;
begin
//无问题
d:=strtodatetime('2001/12/31 02:53:39');
v:=d;
DBEdit1.Field.Value:=v; (uuu) //有问题
d:=strtodatetime('0001/12/31 02:53:39');
v:=d;
DBEdit1.Field.Value:=v; (xxx)end;DBEdit1是一个DateTime类型的字段,语句XXX异常
DBEdit1.Field.AsDateTime:=d;
或者 d:=strtodatetime('0001/12/31 02:53:39');
v:=d;
DBEdit1.Field.AsDateTime:=v; //不是DBEdit1.Field.Value
这样做是没问题的其实这应该是Variant类型转换的Bug日期1899年12月31日是0,以前的就是负数,delphi还是支持公元一年的
給出語句异常提示!!這樣比較好解決點!
西方日期格式:12/31/0001 02:53:39
请看一下Delphi帮助吧
d:=strtodatetime('0001/12/31 02:53:39');
//d是TDateTime型,实际就是Double型,赋值给V(Variant类型)
v:=d;
//再把v赋值给DBEdit1.Field.Value,弹出错误Invalid Field Value of 'Hiredate'
DBEdit1.Field.Value:=v;
d:=strtodatetime('0001/12/31 02:53:39');
//d是TDateTime型,实际就是Double型,赋值给V(Variant)
v:=d;
//再把v赋值给DBEdit1.Field.Value,弹出错误Invalid Field Value of 'Hiredate'
DBEdit1.Field.Value:=v;
//下面这样做是没问题的
DBEdit1.Field.AsDateTime:=v; //不是DBEdit1.Field.Value
唉!!!!!!!!!!!!!!1