Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Data i godzina zamiast samej daty - jak usunąć czas i strefę czasową w Power Query
Kolumny dat z baz danych i API przychodzą często z godziną, a czasem także ze strefą czasową. W podglądzie wyglądają jak daty, ale grupowanie po dniu, scalanie z kalendarzem i relacje w Power BI nie traktują ich jak dat. Pokazujemy, jak w Power Query usunąć godzinę z daty i co zrobić ze strefą czasową, żeby żaden wiersz nie zmienił dnia.
Kolumna ma w nagłówku ikonę kalendarza z zegarem, czyli typ Data/godzina, albo ikonę typu Data/godzina/strefa czasowa. Wartości wyglądają jak 06.10.2026 14:30:00 albo 06.10.2026 23:30:00 +00:00. Skutki sprawdziliśmy w polskim Excelu:
#datetime(2026,10,6,0,0,0) = #date(2026,10,6) zwróciło false.W Power BI taka kolumna nie połączy się relacją z kolumną typu Data w tabeli kalendarza. Przy danych zapisanych w UTC dochodzi kolejny kłopot: transakcja z 23:30 UTC 6 października to w Polsce już 7 października, więc od sposobu konwersji zależy, do którego dnia trafi.

Power Query rozróżnia typy Data, Data/godzina i Data/godzina/strefa czasowa i porównuje wartości razem z typem. Dlatego północ 6 października w typie Data/godzina nie jest równa dacie 6 października, a w kursie przy scalaniu podkreślamy, że oba pola muszą mieć typ Data. Grupowanie i scalanie traktują każdą inną godzinę jako inną wartość.
Przy typie Data/godzina/strefa czasowa dochodzi przeliczanie. Zmiana typu na Data albo Data/godzina zamienia wartość na czas lokalny komputera, na którym działa zapytanie. W naszym teście na komputerze w strefie UTC+2 wartość 06.10.2026 23:30:00 +00:00 po zmianie typu na Data dała 07.10.2026, a DateTimeZone.ToLocal dała 07.10.2026 01:30 +02:00. DateTime.Date wzięła samą część daty bez przeliczania, czyli 06.10.2026, a DateTimeZone.RemoveZone usunęła strefę i zostawiła 23:30. Dokumentacja Microsoft dodaje, że w Power Query Online przeliczenie na czas lokalny zwraca czas UTC, więc to samo zapytanie w chmurze może przypisać wiersz do innego dnia niż na komputerze.
DateTime.Date: w naszym teście 06.10.2026 14:30 zamieniło się w 06.10.2026.DateTime.Date([Czas]) i ustaw jej typ Data. Ta kolumna posłuży do grupowania, scalania i relacji, a oryginał zostanie.DateTimeZone.SwitchZone([Czas], 2) zamieniło w teście 06.10.2026 23:30 +00:00 na 07.10.2026 01:30 +02:00, a DateTime.Date z tego wyniku dało 07.10.2026. Liczba godzin wpisana na sztywno nie uwzględnia zmiany czasu, bo zimą Polska ma przesunięcie +1, a latem +2.DateTimeZone.ToLocal, bo bierze strefę z systemu: w teście w październiku dała przesunięcie +02:00. W usłudze Power BI i w Power Query Online ta funkcja zwraca jednak czas UTC, więc w zapytaniach odświeżanych w chmurze przesunięcie wyliczaj z daty albo przechowuj daty w UTC.DateTimeZone.RemoveZone, a potem wybierz Tylko data. Na końcu ustaw typ Data. Przy ładowaniu do Lakehouse w Fabric to konieczne: według dokumentacji Microsoft typ Data/godzina/strefa czasowa nie jest obsługiwany w tym miejscu docelowym.Pogrupuj dane po nowej kolumnie dat i sprawdź liczbę wierszy. W naszym teście dwie transakcje z 6 października po zamianie na datę dały jedną grupę z sumą 30. Scalenie z kalendarzem po kolumnie typu Data znajduje teraz pary, w teście jedną na jeden wiersz. Przy danych UTC porównaj z systemem źródłowym kilka transakcji z okolic północy: zdarzenie z 23:30 UTC ma trafić do tego dnia, który obowiązuje w Twoim raporcie.
Żeby problem nie wrócił, ustal jedną zasadę dla całego modelu: wszystkie daty liczysz w UTC albo wszystkie w czasie polskim i przeliczasz je jawnie w jednym miejscu zapytania. Nowe źródło z bazy albo API sprawdzaj po ikonie typu w nagłówku, zanim połączysz je z kalendarzem.
Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query
Szkolenie Microsoft Excel - Power Query --> Dwa dni warsztatów z Excela: pobieranie danych z plików, folderów, SharePointa i baz SQL, ich czyszczenie i łączenie w Power Query, praca w języku M, a na koniec model danych i oparta na nim tabela przestawna. Prowadzi Sebastian Stasiak.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...