mysql - 参数化查询 - M 语言 (Excel)
问题描述
我正在尝试使我的查询参数化;这意味着一旦设置了特定单元格中的值,它将是查询将运行的值。
我的问题是单元格中的值是日期,而 MySQL 不理解格式
这是我正在使用的查询:
Select * From ID WHERE `TIME` = '2019-08-26';
我所做的是我去 excel 并使用“从表/范围获取数据”选项创建了一个表,因此该表执行过滤或我想要执行查询的值。
之后我进入电源查询并将我的查询中“时间”的值更改为此它变得动态
`TIME`= " & Text.From(X) & ";"])
现在我表中的值变成了动态过滤器。
然后进入高级编辑器并添加以下内容:
let
Source1 = Excel.CurrentWorkbook(){[Name="Table1_2"]}[Content],
x= Source1{0}[Date],
Table1_2 作为我创建的表(使用获取数据选项)
[日期] 是上述表格的表头
完成后,power query 会读取如下查询,假设我的表中的值(参数)= 2019-01-01:
SELECT * FROM ID WHERE `TIME` = 2019/01/01
它返回一个空表,因为我的数据库中的数据格式是 YYYY-MM-DD
这是我面临的第二个问题是:
我希望我的查询根据插入到单元格中的数据与其后一天之间的范围进行过滤(将一天添加到单元格中的值),这意味着表中的值(过滤器/参数)成为一个范围例子:
单元格中的值 = 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 Query 仍然不会给我任何结果,因为 excel 完全忽略了我所做的事情,因为表格返回了错误的值。
有谁知道如何解决这个问题?
解决方案
格式为(Date.ToText
区分大小写)
Date.ToText(x, "yyyy-MM-dd")
然后让
`TIME` = "' & Date.ToText(x, "yyyy-MM-dd") & "';"
对于 SQL。一定要包括'
既然你正在使用Date.ToText
,你可以省略Text.From
推荐阅读
- mysql - 数据库表创建日期“自行更改”
- jestjs - 开玩笑测试失败 -> 测试套件无法运行:�PNG SyntaxError: Invalid or unexpected token
- python - Python; 创建数量递增的列表
- android - 为什么在 Android 绑定示例中 Google 使用 val 绑定和 var _binding?
- python - 自定义 UUID 字段 PK 作为外键访问时返回错误类型
- tensorflow - Tensorflow 警告 - 权限不足:'cupti64_101.dll'; dlerror:cupti64_101.dll
- python - 在python中将dict写入json文件
- excel - VBA CopySheetsFromClosedWorkbook,但用新值覆盖(更新)现有工作表
- maven - 如何在 Maven 中最后执行配置文件
- delphi - Delphi 10.3 Rio 中的提示大小