Excel SQL 查询中的 DateAdd 函数不起作用

Posted

技术标签:

【中文标题】Excel SQL 查询中的 DateAdd 函数不起作用【英文标题】:DateAdd function in Excel SQL query not working 【发布时间】:2018-02-27 12:00:05 【问题描述】:

我正在使用 Excel 进行 SQL 查询(连接到 ODBC)。 我对函数 DateAdd() 有疑问,它不能按预期工作。

我需要做的是获取过去六个月的数据。

我的代码类似于

选择 blablabla FROM blablabla 然后我有这个:

WHERE Note_0.Relate_key = Work_history_0.WO_Key AND Work_history_0.Order_date> DateAdd(Month, -6, Now()) 

我在互联网上搜索过,这个语法应该可以工作,但我收到了这个错误消息

找不到列“MONTH”或未指定查询。 (13865)

好像它没有我认为它有的参数,即“间隔、数字、日期”,而是其他的。

对此有任何想法吗?

【问题讨论】:

您针对哪个数据库运行该查询? (如果访问DateAdd("m", -6, Now()) 根据错误是ProgressOpenEdge。所以ADD-INTERVAL(TODAY, -6, 'months')DATEADD('month', -6, NOW) 我认为这是进步。刚刚在谷歌上搜索“进度日期功能”,发现TIMESTAMPADD。有效!不知道必须考虑数据库。谢谢各位 @CristinaK 您能否发布您问题的答案? 【参考方案1】:

这是你需要的:

DateAdd("m", -6, Now) 

甚至DateAdd("m", -6, Date),如果你想摆脱工作时间,来自Now

因此,您必须声明要减去“月份”。

DateAdd MSDN

【讨论】:

我试了一下,还是一样的错误信息,只是改了一个字“找不到或未指定查询列“m”。(13865)” @CristinaKuo - 从您的代码来看,我假设 SQL 在 String 内,然后将 DateAdd("m", -6, Date) 分配给变量并尝试 Order_date> " & thatVariable"Order_date> " & DateAdd("m",-6,Date)。顺便说一句,如果你使用字符串作为 SQL,你就有 SQL 注入的危险。【参考方案2】:
WHERE Note_0.Relate_key = Work_history_0.WO_Key AND Work_history_0.Order_date >  ADD_MONTHS(curdate(), -6)

【讨论】:

以上是关于Excel SQL 查询中的 DateAdd 函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在java中使用sql DATEADD函数

将 select 和 dateadd 函数中的结果集插入到同一个表中

嗯。。。。。SQL函数名之DATEADD的用法

递增日期 - SQL(雪花)

SQL2016中的dateadd操作冲突,但不是2012

SQL 语句 时间递增 急 急 急 急 急 急