DateTimeZone.FixedUtcNow
DateTimeZoneReturns the current UTC date and time as a datetimezone, fixed for the entire query evaluation.
Syntax
DateTimeZone.FixedUtcNow() as datetimezoneReturn Value
datetimezone — The current UTC date and time with a +00:00 offset, fixed at the start of query evaluation.
Remarks
DateTimeZone.FixedUtcNow returns the current UTC date and time as a datetimezone value with a +00:00 offset, fixed to the moment query evaluation began. Unlike DateTimeZone.UtcNow(), all calls within a single query return the same value. This makes it ideal for audit timestamps, consistent age calculations, or any scenario requiring a stable, timezone-unambiguous reference point.
Prefer DateTimeZone.FixedUtcNow() over DateTime.FixedLocalNow() in Power BI Service and Dataflows cloud refreshes. Because cloud environments run on UTC, using UTC explicitly removes any ambiguity about what "local" time means across different refresh environments. The fixed variant ensures all computed columns based on "now" use an identical reference instant, eliminating subtle time-skew bugs in long-running queries.
For the non-fixed variant that may advance between calls, use DateTimeZone.UtcNow(). To convert the UTC datetimezone to a specific local timezone for display, pipe through DateTimeZone.SwitchZone.
Examples
Example 1: Stamp each row with a consistent UTC refresh time
let
RefreshTime = DateTimeZone.FixedUtcNow(),
Source = Table.SelectColumns(Table.FirstN(Sales, 4), {"OrderID", "OrderDate"}),
WithStamp = Table.AddColumn(Source, "RefreshedAtUTC",
each RefreshTime, type datetimezone)
in
WithStampThe final output — the WithStamp table showing each order alongside its consistent UTC refresh timestamp.
OrderID | OrderDate | RefreshedAtUTC | |
|---|---|---|---|
| 1 | 1 | 1/15/2024 | 3/8/2026 4:00:00 PM |
| 2 | 2 | 1/18/2024 | 3/8/2026 4:00:00 PM |
| 3 | 3 | 2/1/2024 | 3/8/2026 4:00:00 PM |
| 4 | 4 | 2/10/2024 | 3/8/2026 4:00:00 PM |
Example 2: Return the fixed UTC now
#table(
type table [FixedUTCNow = datetimezone],
{{DateTimeZone.FixedUtcNow()}}
)FixedUTCNow | |
|---|---|
| 1 | 3/8/2026 4:00:00 PM |
Example 3: Convert UTC refresh time to a local display timezone
let
UTCNow = DateTimeZone.FixedUtcNow(),
EasternNow = DateTimeZone.SwitchZone(UTCNow, -5),
Source = Table.SelectColumns(Table.FirstN(Sales, 3), {"OrderID"}),
WithStamp = Table.AddColumn(Source, "RefreshedAtEST",
each EasternNow, type datetimezone)
in
WithStampThe final output — the WithStamp table showing each order alongside its Eastern Time refresh timestamp converted from UTC.
OrderID | RefreshedAtEST | |
|---|---|---|
| 1 | 1 | 3/8/2026 4:00:00 PM |
| 2 | 2 | 3/8/2026 4:00:00 PM |
| 3 | 3 | 3/8/2026 4:00:00 PM |