Today()
Today and Now in Power BI
Qlik's Today() and Now() take a timer mode: 0 for the last finished reload, 1 for the function call, 2 for when the app was opened. In Qlik Cloud they evaluate in UTC. DAX TODAY() and NOW() in a measure run at query time. In a calculated column they run at refresh time. In the Power BI service both are UTC, so convert to local time yourself.
Short answer: For "today" in measures, use TODAY(), aware that the service runs on UTC. For "data as of", store the refresh time in a one-row table from Power Query with DateTimeZone.FixedUtcNow() and show it in a card.
What it does in Qlik
Today([timer_mode])returns the date andNow([timer_mode])the timestamp. Both default to timer_mode 1, the time of the function call.- In Qlik Cloud both are UTC. Use
ConvertToLocalTime()orLocalTime()for other zones. - The timestamp of the last reload is in the ReloadTime() function.
Qlik example
LET vToday = Num(Today()); // at reload
='Data as of ' & Timestamp(ReloadTime()) // last reload
ConvertToLocalTime(Now(), 'Amsterdam')Power BI equivalent
Power Query (refresh timestamp table)
// New blank query "Last Refresh"
let
Source = #table(type table [RefreshedUTC = datetimezone],
{{DateTimeZone.FixedUtcNow()}}),
Local = Table.AddColumn(Source, "Refreshed (Amsterdam)", each
DateTimeZone.SwitchZone([RefreshedUTC], 1), type datetimezone)
in
LocalSwitchZone(..., 1) is a fixed UTC+1 offset. Power Query has no named time zones, so daylight saving time has to be handled with your own rule or upstream.
DAX
Today (query time) = TODAY () // UTC in the service
Today UTC = UTCTODAY ()
Data as of = "Data as of " & FORMAT ( MAX ( 'Last Refresh'[RefreshedUTC] ), "dd-mm-yyyy hh:nn" ) & " UTC"Gotchas and behaviour differences
- In Desktop,
TODAY()uses your PC's time zone. In the service it's UTC. A "today" filter can be a day off around midnight in Europe, or most of the evening in the Americas. DateTime.LocalNow()in Power Query is the gateway's or service's clock at refresh. In the cloud that's UTC, so preferDateTimeZone.FixedUtcNow()and convert explicitly.
Official documentation
- today - script and chart function (Qlik Help)
- now - script and chart function (Qlik Help)
- TODAY function (DAX) (Microsoft Learn)
- UTCTODAY function (DAX) (Microsoft Learn)
- DateTimeZone.FixedUtcNow (Power Query M) (Microsoft Learn)
Related pages
Sum(If(InYear(OrderDate, Today(), -1), Sales))
InYear, InMonth and period flags
Qlik developers often put InYear() and InMonth() flags in the script (-1 or 0) and multiply by them in charts, or use them inside If(). In Power BI, the equivalent is a calendar table with offset columns (YearOffset, MonthOffset), filtered with CALCULATE or a relative-date slicer. Time-intelligence functions such as SAMEPERIODLASTYEAR cover the common cases.
Partial / different approach
YearToDate(date [, yearoffset [, firstmonth [, todaydate]]])
YearToDate flags and YTD
Qlik's YearToDate() flag is relative to the reload date. DAX TOTALYTD is relative to the dates in the filter context. Pick the one that matches what users expect, or rebuild the flag as a calculated column.
Partial / different approach
Scheduled reloads, reload tasks and task chains
Reload schedules and tasks
A Qlik reload becomes a semantic model refresh in the Power BI service. On-premises sources need an on-premises data gateway. Chained tasks (load QVDs, then the app) become a Fabric Data Factory pipeline or an API-driven sequence.
Partial / different approach
Spotted an error or a better pattern? QlikToDax is maintained by a working BI consultant; corrections are welcome via the About page. Last reviewed 2026-10-25.