首页 > 解决方案 > 对 SQL Server 的查询中的 MS Access Date() 语法

问题描述

我发现了几篇关于在 Access 前端 VBA 过程中使用 SQL Server 链接表的 GETDATE() 函数的帖子。这些帖子的重点是查询的 WHERE 子句,但我一直无法找到有关使用 GETDATE() 进行列分配的相应信息。

例如,我知道在 WHERE 子句中,我会使用如下内容:

WHERE MyDate = CAST(GETDATE() AS DATE)

但是,当我尝试将当前日期分配给列时,我在 VBA 中遇到语法错误,如下所示:

INSERT INTO MyTable ( SomeValue, TheDate ) SELECT 'Widget' AS Expr1, CAST(GETDATE() AS DATE) AS Expr2;

在此示例中,TheDate 在 SQL Server 中定义为 DateTime。像这样写,VBA 报告“查询表达式'CAST(GETDATE() AS DATE)'中的语法错误(缺少运算符)'。我试图用访问友好的 # 日期分隔符包围表达式,但没有运气。

花了大约 30 分钟在 stackexchange.com 上搜索 SQL 中 MS Access Date() 的各种方法后,我一直找不到这个。然而它是如此简单,我相信它已经在某个地方得到了回答。

标签: sql-serverdatems-accessgetdate

解决方案


在 MS Access 中,您可能(不是 100% 确定链接 SQL,您必须进行试验)应该使用Now()Date()功能。第一个相当于getdate()在 SQL 中,第二个返回没有时间的当前日期。


推荐阅读