SQL Query with Date Range Parameters in Power Query M

Passes Power Query parameter values into a native SQL query's WHERE clause for a dynamic date range.

Database & RefreshAdvancedsqlparametersdate rangedatabase

Power Query M code

let
    StartDateText = Date.ToText(StartDateParameter, "yyyy-MM-dd"),
    EndDateText = Date.ToText(EndDateParameter, "yyyy-MM-dd"),
    Source = Sql.Database("YourServer", "YourDatabase", [Query =
        "SELECT * FROM Sales.Orders WHERE OrderDate BETWEEN '" & StartDateText & "' AND '" & EndDateText & "'"
    ])
in
    Source

Notes

StartDateParameter and EndDateParameter should be Power Query date parameters; building SQL text this way is fine for trusted internal parameters, not for arbitrary user input.

Requirements

How to use this snippet

  1. In Power BI Desktop, choose Transform data to open Power Query, then open the Advanced Editor on a query (or start from a blank query).
  2. Paste the snippet and replace the placeholder names (tables, columns, file paths) with your own. Check the requirements above first.
  3. Run it through the Power Query M Formatter to tidy the layout.

Related Power Query M snippets

More Power Query M resources

Browse all 145 snippets in the Power Query M Code Snippets, or search the library for something similar to SQL Query with Date Range Parameters.