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())
)
根据错误是Progress
或OpenEdge
。所以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 函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章