Excel - 使用单元格值作为传递日期 ODBC SQL PowerQuery

问题描述 投票:0回答:1

我已经在这里这里看到了关于SO的参考帖子。我已尝试论坛的回复,但无法成功运行我的 PowerQuery。

到目前为止,我已将开始日期和结束日期单元格命名为“StartDate”和“EndDate”。从那里我创建了两个空白查询,都重命名为 StartDateValue 和 EndDateValue,如下所示:

(StartDate) => Excel.CurrentWorkbook(){[Name=StartDate]}[Content]{0}[Column1]
(EndDate) => Excel.CurrentWorkbook(){[Name=EndDate]}[Content]{0}[Column1]

现在,循环回到我原来的 PowerQuery,设置这些日期参数的 where 子句如下所示:

 AND A."CREATED_DTM" BETWEEN Excel.Workbook(File.Contents(StartDateValue("StartDate"))) and Excel.Workbook(File.Contents(EndDateValue("EndDate")))
          

这样做似乎不起作用。不过,如果我替换“失败”的调用并简单地输入日期值(如

'5/1/2022'
),我的脚本就会正常执行。也许我错过了一个步骤或者没有在我的 SQL 中正确调用这些值...不太确定。任何有关这方面的信息都有帮助,谢谢。

sql excel odbc parameter-passing powerquery
1个回答
0
投票

我不确定您打算如何在 powerquery 中使用它,但您可能希望在查询中以文本格式显示 StartDate 和 EndDate 单元格的内容,因此放弃您的两个函数,只需在代码中包含这些行

SD = Text.From(Date.From(Excel.CurrentWorkbook(){[Name="StartDate"]}[Content]{0}[Column1])),
ED = Text.From(Date.From(Excel.CurrentWorkbook(){[Name="EndDate"]}[Content]{0}[Column1])),

然后您可以根据需要使用SD和ED

text = "this is some text with " & SD & " and " & ED & " in them"

= Sql.Database("SERVER", "DATABASE", [Query="SELECT * FROM [TABLE] WHERE weekStartDate>='"&SD&"'"])
© www.soinside.com 2019 - 2024. All rights reserved.