Forum Discussion
Refresh Time Disparity
Hi
I'm having trouble trying to get my refresh times accurate. The scheduled refresh on my report is for 0130hrs but the refresh time measure in my report shows it is happening an hour earlier at 0030hrs.
I don't know which one is correct and how to make them run at 0030hrs from now on. If I changed Fig.1. to 2330hrs I'd be worried that I'm scheduling the refresh too early?
Fig1.
Fig.2.
Fig.3
Hi ArchStanton
If you want the refresh to run one hour earlier (00:30 UTC), keep the timezone set to UTC and simply change the scheduled time to 00:30.
Do not select UTC-01:00, as this would shift the equivalent UTC execution time later, rather than earlier.
If your goal is to keep the refresh at 01:30 UK local time, select Dublin, Edinburgh, Lisbon, London (UTC+00:00). This timezone automatically accounts for daylight saving time, so the refresh will run at 01:30 GMT during winter and 01:30 BST during summer.
14 Replies
- v-aatheeque
Community Support
Hi ArchStanton
Thanks for reaching out to Fabric Community Forum.The discrepancy is most likely caused by the difference between the timezone used by the scheduled refresh and the timezone used in your Power Query timestamp. Power BI Service executes scheduled refreshes in UTC, so your 00:30 UTC slot corresponds to 01:30 UK local time during daylight saving.
In your query, although AdjustedDateTime adds one hour, that value isn’t actually used in the output table, the table is built from AsDateTime. That’s why Fig. 3 doesn’t reflect the adjustment.
If the business requirement is 01:30 UK time, configure the refresh timezone to UK and schedule it for 01:30. Power BI will automatically align UTC vs BST/GMT.
Finally, use the dataset’s Refresh history in the Service to confirm the actual refresh start time. This is more reliable than relying on the custom “Last Refresh Date” field in the report.
Useful Links: https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-scheduled-refresh
https://learn.microsoft.com/en-us/powerquery-m/m-local-fixed-utc-variants
Hope this helps!!
Thank You.
- ArchStanton
Power Participant
Thanks for the detailed explanation, I checked Service and the report was indeed refreshed at 0130hrs and the Timezone is set as UTC Coordinated Universal Time.
In order for this to refresh an hour earlier I am thinking of selecting UTC -01.00 or should I configure to UTC Dublin, Edinburgh, London, I don't see that bringing it back 1 hour?
- v-aatheeque
Community Support
Hi ArchStanton
If you want the refresh to run one hour earlier (00:30 UTC), keep the timezone set to UTC and simply change the scheduled time to 00:30.
Do not select UTC-01:00, as this would shift the equivalent UTC execution time later, rather than earlier.
If your goal is to keep the refresh at 01:30 UK local time, select Dublin, Edinburgh, Lisbon, London (UTC+00:00). This timezone automatically accounts for daylight saving time, so the refresh will run at 01:30 GMT during winter and 01:30 BST during summer.
- ArchStanton
Power Participant
Thanks, I'll test this once I get my reports refreshing overnight again, I'll mark as a solution once I have
- v-aatheeque
Community Support
Hi ArchStanton
Just checking in to see if you had a chance to test the solution after getting your reports refreshing overnight. Please let us know if everything is working as expected or if you’re still seeing any issues.
- ArchStanton
Power Participant
Here is the code for it:
let Source = DateTimeZone.UtcNow(), UKTime = DateTimeZone.SwitchZone( Source, 0, 0 ), UKAdjusted = DateTimeZone.ToLocal( Source ), AsDateTime = DateTimeZone.RemoveZone( UKAdjusted ), AdjustedDateTime = AsDateTime + #duration(0, 1, 0, 0), AsTable = #table( 1, {{ AsDateTime }} ), RenamedCols = Table.RenameColumns( AsTable, {{"Column1", "DateTime"}} ), ChangedType = Table.TransformColumnTypes( RenamedCols, {{"DateTime", type datetime}} ), WithDate = Table.AddColumn( ChangedType, "Date", each DateTime.Date( [DateTime] ), type date ), WithTime = Table.AddColumn( WithDate, "Time", each DateTime.Time( [DateTime] ), type time ) in WithTime - ArchStanton
Power Participant
Pasting it again because the Insert Code feature is broken:
letSource = DateTimeZone.UtcNow(),
UKTime = DateTimeZone.SwitchZone( Source, 0, 0 ),
UKAdjusted = DateTimeZone.ToLocal( Source ),
AsDateTime = DateTimeZone.RemoveZone( UKAdjusted ),
AdjustedDateTime = AsDateTime + #duration(0, 1, 0, 0),
AsTable = #table( 1, {{ AsDateTime }} ),
RenamedCols = Table.RenameColumns( AsTable, {{"Column1", "DateTime"}} ),
ChangedType = Table.TransformColumnTypes( RenamedCols, {{"DateTime", type datetime}} ),
WithDate = Table.AddColumn( ChangedType, "Date", each DateTime.Date( [DateTime] ), type date ),
WithTime = Table.AddColumn( WithDate, "Time", each DateTime.Time( [DateTime] ), type time )
in
WithTime
- v-aatheeque
Community Support
Hi ArchStanton
Have you had a chance to look through the responses shared earlier? If anything is still unclear, we’ll be happy to provide additional support.
- v-aatheeque
Community Support
Hi ArchStanton
Following up to confirm if the earlier responses addressed your query. If not, please share your questions and we’ll assist further.
- ShahRukhSameer
Solution Sage
Hi ArchStanton,
What you're seeing is usually a timezone difference rather than the refresh actually running at a different time.
In your screenshot, the dataset is configured in UTC, and the scheduled refresh is set to 12:30 AM UTC. If your refresh history or DAX measure is showing 00:30 while you're expecting 01:30, then one of the following is likely happening:
- The Power BI Service schedule is using UTC.
- Your DAX measure is converting timestamps to local time (or vice versa).
- The source system is storing timestamps in a different timezone.
The easiest way to verify is to check the Refresh History in the Service and compare the actual refresh start/end times against your measure. Refresh History is the source of truth for when the refresh really occurred.
I wouldn't change the schedule to 23:30 unless you've confirmed a timezone offset issue first, otherwise you may end up refreshing an hour earlier than intended.
Can you share the DAX measure you're using to display the refresh time? That will help determine whether the discrepancy is coming from the refresh schedule or the time conversion logic.
- ArchStanton
Power Participant
Hi, the refresh was built in Power Query not DAX, I only have this DAX which is just a label to put on the report.
LastRefreshDate = "Last Refresh Date: " & MAX(ReportRefreshDateTime[DateTime])I believe v-aatheeque has proposed the correct solution which I will test once my reports are refreshing again