sql - 在 Access 查询中使用表单中的日期字段

标签 sql ms-access

我当前有一个使用表单中的日期字段的查询。一切都编译得很好,问题是当我尝试对此进行扩展时。我想指定比表单上显示的日期早一天的日期。我当前用于获取日期的 SQL 是

WHERE ((DateValue([TIMESTAMP]))=[Forms]![Frm_Start]![Date]) 

但是,当我尝试在末尾添加 + 1 时,它会显示以下消息:

The expression is typed incorrectly, or is too complex to be evaluated.

如有任何建议,我们将不胜感激。

最佳答案

使用 PARAMETERS 子句作为 SQL 的第一行,通知数据库引擎表单控件包含日期/时间值。

PARAMETERS Forms!Frm_Start![Date] DateTime;

然后在 WHERE 子句中使用带有 DateAdd() 的参数:

WHERE DateValue([TIMESTAMP])=DateAdd("d", 1, Forms!Frm_Start![Date])

但是,这需要为表中的每一行运行 DateValue()。使用 [TIMESTAMP] 索引应该会更快:

WHERE
        [TIMESTAMP] >= DateAdd("d", 1, Forms!Frm_Start![Date])
    AND [TIMESTAMP] < DateAdd("d", 2, Forms!Frm_Start![Date])

关于sql - 在 Access 查询中使用表单中的日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14442822/

相关文章:

ms-access - 替换 MS Access 表单

按财政年度的 SQL 组数据

ms-access - 前端数据库的捷径是否明智?

mysql - SQL - 连接查询运行缓慢

sql - 在特定条件下在表之间移动数据

mysql - 尽可能多地公开 3 个未知数据库文件的信息

ms-access - 从 CSV 导入 Access 时字段顺序错误

mysql - 将 hibernate 生成器值从增量更改为 native

php - 将 MYSQL 用户帐户恢复到新数据库

java - 参数化查询 : Check if field is in array of values in SELECT statement