【发布时间】:2020-07-29 19:08:10
【问题描述】:
我在 Delphi 中使用 MS Access 数据库。我想提取两个日期字段Date In和Date Out之间的差异;在表中,tblGuestInfo。我想将这两个日期之间的差异保存为整数变量 inights。
我有以下代码。
with datamod.qryguestinfo do
begin
close;
sql.clear
sql.add('SELECT DATEDIFF ("d","[Date In]","[Date Out]") As DateDifference')
sql.add('From tblGuestInfo');
open;
inights := fieldbyname['DateDifference'].asInteger;
open;
end;
当我运行它时,出现以下错误消息“qryguestinfo field: 'DateDiff' not found”。
我假设错误消息来自inights := fieldbyname['DateDiff'].asInteger 代码。
我还是 SQL 的新手,任何帮助都将不胜感激。
【问题讨论】:
-
您忘记打开查询了。
-
不要使用保留字作为名称。 DateDiff 是一个保留字 - 内在函数。如果您坚持使用 then 括在 [ ] 字符中:
AS [DateDiff]但不要让自己恶化,不要这样做。 -
我会改的,谢谢你的建议。
-
您能否养成在您的 q 中包含相关信息的习惯,在这种情况下是您的 qryguestinfo 表的数据类型。顺便说一句,除非您在 IDE 中的表上创建持久字段,否则在您打开表之前,“DateDiff”fiekd 不会实际存在。
-
@MartynA,我不知道我的 qryguestinfo 表可能有数据类型,还是您指的是表中的字段数据类型?