从 SQL 服务器将数据导入 Power BI 时,如何动态更改 SQL 查询中使用的值?

When importing data into Power BI from SQL Server, how do you dynamically change a value used in the SQL query?

我有以下查询将数据从 SQL 服务器导入 Power BI。

SELECT *
FROM table_name
WHERE transaction_date > '2020-01-01 00:00:00'

我需要能够更改 transaction_date 的值(日期时间值),而不必每次都编辑查询。

我试图使用参数来执行此操作,但我不知道如何将其正确添加到 SQL 查询中。参数 current_date 是日期时间值。

SELECT *
FROM table_name
WHERE transaction_date > '"&current_date&"'

我收到错误:

Conversion failed when converting date and/or time from character string.

请告诉我如何使用这些参数,或者是否有任何其他方法可以做到这一点。

您可以使用数据库接受的适当日期格式将值转换为文本,例如:

DateTime.ToText(current_date, [Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"])

然后在您的 M 代码中使用该值来修改查询:

let
    Source = Sql.Database(".", "SomeDatabaseName", [Query="select *#(lf)from table_name#(lf)where transaction_date >= '" & DateTime.ToText(current_date, [Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]) & "'"])
in
    Source

请注意,每次参数值更改为新内容时,都会提示用户确认查询。要关闭此功能,您必须转到设置并取消选中 Require user approval for native database queries 复选框: