Forum Discussion

ArchStanton's avatar
ArchStanton
Icon for Power Participant rankPower Participant
1 month ago
Solved

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's avatar
    v-aatheeque
    Icon for Community Support rankCommunity 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's avatar
      ArchStanton
      Icon for Power Participant rankPower 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's avatar
    v-aatheeque
    Icon for Community Support rankCommunity 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's avatar
      ArchStanton
      Icon for Power Participant rankPower 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's avatar
        v-aatheeque
        Icon for Community Support rankCommunity 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's avatar
    ArchStanton
    Icon for Power Participant rankPower 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's avatar
    ArchStanton
    Icon for Power Participant rankPower Participant

    Pasting it again because the Insert Code feature is broken:



    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

  • v-aatheeque's avatar
    v-aatheeque
    Icon for Community Support rankCommunity 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's avatar
      v-aatheeque
      Icon for Community Support rankCommunity 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.

  • 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's avatar
      ArchStanton
      Icon for Power Participant rankPower 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