我试图使我的查询参数化;这意味着,一旦设置了特定单元格中的值,它就是该查询将运行的值。
我的问题是单元格中的值是日期,而MySQL不理解格式
这是我使用的查询:
Select * From ID WHERE `TIME` = '2019-08-26';我所做的是使用“从表/范围获取数据”选项到excel并创建一个表,因此该表执行筛选或我想要执行查询的值。
之后,我进入了power查询,并将查询中的"Time“值改为”Time“,使其变为动态的。
`TIME`= " & Text.From(X) & ";"])现在,我表中的值变成了动态过滤器。
然后进入高级编辑器并添加以下内容:
let
Source1 = Excel.CurrentWorkbook(){[Name="Table1_2"]}[Content],
x= Source1{0}[Date],Table1_2是我创建的表(使用get数据选项)
日期是上表的标题。
完成此操作后,power查询将按以下方式读取查询,假设表(参数)中的值= 2019-01-01:
SELECT * FROM ID WHERE `TIME` = 2019/01/01 ,它返回一个空表,因为我的DB中的数据格式是YYYY-MM-DD。
这就是我所面临的第二个的第一个问题:
我希望我的查询基于插入在单元格中的数据到第二天的数据(在单元格中的值添加一天)之间的范围进行筛选,这意味着表中的值( filter /Parameter)变成了一个范围,例如:
单元格中的值= 2019-01-01
查询应该变成
SELECT * FROM ID WHERE `TIME` > '2019-01-01' AND `TIME` < '2019-01-02' 我厌倦了把时间变成这样:
`TIME` > " & Text.From(Date.ToText((x),"YYYY-MM-DD"))& "
and `TIME` < "& Text.From(Date.ToText((Date.AddDays(x,1)),"YYYY-MM-DD")) &";"])Power查询仍然不会给我任何结果,因为excel完全忽略了我所做的事情,因为表返回的值是错误的。
有谁知道如何解决这个问题吗?
发布于 2019-08-29 12:22:42
Date.ToText格式(区分大小写)
Date.ToText(x, "yyyy-MM-dd")然后让
`TIME` = "' & Date.ToText(x, "yyyy-MM-dd") & "';"对于SQL。一定要包括'
由于您使用的是Date.ToText,所以可以省略Text.From。
https://stackoverflow.com/questions/57694824
复制相似问题