ADO 连接 ACCESS 数据库的问题, 请高手解释!!

hiflower 2003-03-12 08:18:09
DELPHI 的 TDateTime 类型与 ACCESS 中的 Date/Time 数据类型好象对不上。
下例:
with ADOQuery do
begin
SQL.Clear;
SQL.Add('INSERT INTO ATable(DatetimeField) VALUES (:DatetimeValue)');
Parameters.ParamValues['DatetimeValue']:=Now;
ExecSQL;
end;
执行上述语句后,用 ACCESS 或 DBGRID 查看数据库,DateTimeField 字段中只有日期部分,而没有时间部分。

但是,只要将 Now 强制转换成 Double 类型,就可以了。如下:

with ADOQuery do
begin
SQL.Clear;
SQL.Add('INSERT INTO ATable(DatetimeField) VALUES (:DatetimeValue)');
Parameters.ParamValues['DatetimeValue']:=Double(Now);
ExecSQL;
end;
为什么会这样,TDateTime 和 Double 不是一回事吗?
在 System 单元中有: type TDateTime= type Double;
真是太奇怪了! 请高手解释!!
...全文
52 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-09-07
  • 打赏
  • 举报
回复
看来是 Delphi 的问题,我不想再深究了。
谢谢两位
hiflower 2003-05-27
  • 打赏
  • 举报
回复
我不需要解决方案,只希望弄懂 Double 与 TDateTime 究竟有何区别。

在 System 单元中有: type TDateTime= type Double;

因此,我认为不应有区别。
changechange 2003-05-27
  • 打赏
  • 举报
回复
你的提问标题完全是误导他人,其实你讨论的焦点根本不是你的标题
soaringsouth 2003-03-13
  • 打赏
  • 举报
回复
format('yyyy-mm-dd',DatetimeValue)就可以了。
changechange 2003-03-12
  • 打赏
  • 举报
回复
access默认是放日期的,除非你定义了该字段的格式到底用那种

其实时间部分也在,只不过是 00:00:00.000而已

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧