TableAdapter配置向导无法识别sql语句"DATE()"

本文关键字:quot DATE 语句 sql 向导 配置 识别 TableAdapter | 更新日期: 2023-09-27 18:02:05

我需要在我的程序中做一个报告。然后,我使用以下sql代码筛选将在报表查看器中显示的数据:

SELECT * 
FROM Order 
WHERE OrDate=DATE() OR OrDate>=DATE() - 7;

当我点击下一步时,出现这个错误

生成SELECT语句。')'附近的WHERE子句错误。无法解析查询文本。

请帮我解决这个错误

TableAdapter配置向导无法识别sql语句"DATE()"

您希望Date返回今天的日期吗?我以为是GETDATE() http://msdn.microsoft.com/en-gb/library/ms188383.aspx

如果你是SQL server 2008

选择SELECT *从(订单)WHERE OrDate>= CONVERT(date, DATEADD(DAY, -7, GETDATE()))

问题不是因为DATE(),而是因为表名ORDER

在大多数RDBMS中,ORDER是保留关键字。当使用保留关键字时,使用特定于供应商的分隔符对其进行转义。在SQL Server中,您可以使用括号。

SELECT  * 
FROM   [Order] 
WHERE  OrDate = DATE() OR 
       OrDate >= DATE() - 7;
  • 访问保留关键字

From Access Docs,

如果一个保留字已经在使用中,可以通过用括号([])括起每个出现的单词。然而,最好的解决方案是将名称更改为非保留字。