Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Power BI
Odświeżanie w usłudze Power BI przesuwa daty o godzinę - DateTime.LocalNow i UTC
Raport w Power BI Desktop pokazuje poprawną datę, a po publikacji i odświeżeniu w usłudze jest przesunięty: czas ostatniego odświeżenia jest o godzinę wcześniejszy, a raport z dnia bieżącego tuż po północy wciąż liczy wczoraj. Przyczyną jest DateTime.LocalNow, który w usłudze Power BI zwraca czas UTC. Pokazujemy, skąd się to bierze, jak liczyć czas polski z uwzględnieniem zmiany czasu i jak to sprawdzić.
Typowe zapytanie z filtrem na dzień bieżący zawiera kroki w rodzaju:
Dzisiaj = DateTime.Date(DateTime.LocalNow()),
Filtr = Table.SelectRows(Sprzedaz, each [Data] = Dzisiaj)W Power BI Desktop na komputerze w Polsce dzień jest liczony poprawnie. Po publikacji ta sama formuła w usłudze liczy dzień w czasie UTC, więc zimą między północą a 1:00, a latem między północą a 2:00 zwraca poprzedni dzień. W naszym teście chwila 06.10.2026 22:30 UTC dała w UTC datę 6 października, a w czasie polskim było już 7 października. Kolumna albo karta z czasem odświeżenia liczona przez DateTime.LocalNow() pokazuje w usłudze godzinę o 1 albo 2 mniejszą niż zegar w Polsce. Harmonogram ustawiony na wczesne godziny nocne trafia dokładnie w to okno.
Dokumentacja Microsoft opisuje to wprost: Power Query Online zawsze zwraca czas UTC, nawet gdy funkcja ma w nazwie Local. Opis funkcji DateTime.LocalNow w samym Power Query podaje powód: zapytanie uruchomione w chmurze odczytuje czas maszyn wirtualnych, które są ustawione na UTC. Tak samo zachowują się DateTime.FixedLocalNow, DateTimeZone.LocalNow i DateTimeZone.FixedLocalNow, a DateTimeZone.ToLocal w Power Query Online także zwraca czas UTC. Dotyczy to odświeżania w usłudze Power BI i przepływów Dataflow Gen2 w Fabric.
Polska ma zimą przesunięcie UTC+1, a latem UTC+2, dlatego rozjazd wynosi godzinę albo dwie, zależnie od pory roku. Dokumentacja zwraca uwagę, że różnice najbardziej widać przy granicach: tuż przed północą i tuż po niej, na początku miesiąca i roku. Strefa czasowa w harmonogramie odświeżania ustala, o której godzinie odświeżanie się uruchomi, ale nie zmienia wyniku funkcji, które w chmurze zwracają UTC.

LocalNow, FixedLocalNow i ToLocal.Date.StartOfWeek(#date(rok, 3, 31), Day.Sunday) zwraca niedzielę, od której zaczyna się tydzień z 31 marca, czyli ostatnią niedzielę marca.(utc as datetimezone) as datetimezone =>
let
u = DateTimeZone.RemoveZone(DateTimeZone.SwitchZone(utc, 0)),
rok = Date.Year(u),
startLata = DateTime.From(Date.StartOfWeek(#date(rok, 3, 31), Day.Sunday)) + #duration(0, 1, 0, 0),
koniecLata = DateTime.From(Date.StartOfWeek(#date(rok, 10, 31), Day.Sunday)) + #duration(0, 1, 0, 0),
przesuniecie = if u >= startLata and u < koniecLata then 2 else 1
in
DateTimeZone.SwitchZone(utc, przesuniecie)Teraz = CzasPolski(DateTimeZone.FixedUtcNow()),
Dzisiaj = DateTime.Date(Teraz),
Filtr = Table.SelectRows(Sprzedaz, each [Data] = Dzisiaj)DateTimeZone.FixedUtcNow zwraca czas UTC zarówno w Power BI Desktop, jak i w usłudze, i jedną wartość przez całe obliczenie zapytania, więc wszystkie kroki widzą tę samą chwilę.DateTimeZone.RemoveZone(CzasPolski(DateTimeZone.FixedUtcNow())) daje datę i godzinę w czasie polskim z typem Data/godzina, bez strefy.Sprawdź funkcję na chwilach wpisanych ręcznie, zanim opublikujesz raport, na przykład CzasPolski(#datetimezone(2026, 10, 6, 22, 30, 0, 0, 0)). W naszym teście w polskim Excelu dała ona:
Wszystkie wyniki zgodziły się z przeliczeniem, które ten sam Excel wykonał funkcją DateTimeZone.ToLocal według strefy czasowej Windows (UTC+1 z czasem letnim), także na granicach zmiany czasu w 2027 roku. Po publikacji odśwież model w usłudze i porównaj czas odświeżenia na karcie z zegarem. Żeby problem nie wrócił, w zapytaniach odświeżanych w chmurze nie używaj funkcji z Local w nazwie, a przeliczenie trzymaj w jednej funkcji, z której korzystają wszystkie zapytania.
Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query
Szkolenie Power BI - Desktop, DAX i Online --> Pięć dni od pierwszego raportu do publikacji w usłudze Power BI: Power Query, model danych z wielu tabel, DAX, wizualizacje i Copilot. To szkolenie ma terminy gwarantowane.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...