Access2000数据库有一个ft表,其中有一个rdsj字段(入店时间),内容为:2006-6-13 9:59:52,运行以下的简单过程为什么yzsj(已住时间)变量的内容会是:'1900年1月1日2小时xx分'呢?按说今天是2006-06-15,应该才2天多点的时间啊!我将关键语句改写为:yysj := FormatDateTime('y年m月d日h小时n分', dtTmp); 也同样计算错误。为什么会这样?var
dtTmp: TDateTime;
yzsj: string;
begin
with Adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from ft');
Open;
dtTmp := Now - FieldByName('rdsj').AsDateTime;
yzsj := FormatDateTime('y年m月d日h小时n分', dtTmp);
end;
end;
解决方案 »
- delphi导出Excel日期格式问题??
- 动态创建shape控件,并想在运行时实现对shape的拖动,并可以用鼠标进行大小的拖拉
- 多线程定时执行过程中程序关闭,线程释放的问题!
- 招聘Delphi熟手,工作在广州,有兴趣将简历请Email to [email protected]
- 救命啊!放假一来发现所有的电脑上的系统都不可以使用了,提示一个错ntdll.dll出错啊!
- 请问为什么这个对象Destory后还能用?
- 请教:怎么读写 特定格式的txt文件?
- 如何將image 中的圖片保存到桌面型數據庫中對應的字段﹗
- delphi的数据库连接
- 怎样做这个控件啊?帮帮我了!
- procedure xx(var a:buffer);为什么提示buffer未定义?
- 请问 ShellListView控件 怎么可以只显示指定文件名的文件?
dtTmp: TDateTime;
yzsj: string;
begin
with Adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from ft');
Open;
dtTmp := Now - FieldByName('rdsj').AsDateTime;
yzsj := FormatDateTime('y年m月d日h小时n分', dtTmp);
end;
end;
yzsj := FormatDateTime('y年m月d日h小时n分', dtTmp);你FormatDateTime('YYYY-MM-DD HH:MM', dtTmp);
看看结果是什么,你最好看看showMessage(dateTimeToStr(dtTmp))
0不是公元0年0月……
而是1899年12月31日……(不知是否如此)
dtTmp := Now - FieldByName('rdsj').AsDateTime;表示的是两个时间之间相差的天数,可能是1.XXXXXX,你说转成日期类型不就是1900年1月1日……吗?