Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago
Solved

Filtering on DateTime.LocalNow()

I am using below M code in the power query to filter the data in my query.  I was hoping the DateTime.LocalNow()  will be changing in the WHERE clause of the sql generated whenever i refresh the repo...
  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi Anonymous,

    Thanks for reaching out to the Microsoft fabric community forum.

    Based on what you've described and the SQL captured in Profiler, it looks like DateTime.LocalNow() is being evaluated on the client side (within Power BI), and its value is getting embedded as a static literal in the folded SQL query. That’s why the timestamp doesn’t change across refreshes, and the warehouse ends up returning cached results.

    Even though the query folds, not all M functions translate to equivalent SQL functions. In this case, DateTime.LocalNow() doesn’t get translated into something like GETDATE() at the SQL level, it gets evaluated at the time the query is generated, and the resulting timestamp is pushed to SQL as a fixed value.

    If your goal is to force a fresh timestamp on every query execution (e.g., for stress testing), we’d recommend moving the date filtering logic into a SQL view or using a native SQL query with GETDATE() directly, this ensures the timestamp is evaluated inside the warehouse each time, and avoids hitting the cache.

     

    I would also take a moment to thank lbendlin, for actively participating in the community forum and for the solutions you’ve been sharing in the community forum. Your contributions make a real difference.

     

    If I misunderstand your needs or you still have problems on it, please feel free to let us know.  

    Best Regards,
    Hammad.
    Community Support Team

     

    If this post helps then please mark it as a solution, so that other members find it more quickly.

    Thank you.