Как создать таблицу календаря в power query

#powerbi #powerquery

Вопрос:

с самой ранней датой-2021 1 августа в 12 часов утра с шагом 30 минут, а максимальная дата-время.LocalNow()?

Ожидаемый Результат

 08/01/2021 12:00:00 AM  08/01/2021 12:30:00 AM  08/01/2021 01:00:00 AM  

Код

 Source = List.DateTimes(#datetime(2021, 08, 01, 00, 00, 0), Duration.Days(Duration.From(DateTime.Date(DateTime.LocalNow())-(#datetime(2021, 08, 01, 00, 00, 0)))), #duration(0, 0, 30, 0)),  #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),  

Но я не думаю, что это правильный путь. Кроме того, я все равно получаю эту ошибку

 Expression.Error: We cannot apply operator - to types Date and DateTime. Details:  Operator=-  Left=10/20/2021  Right=8/1/2021 12:00:00 AM  

Комментарии:

1. Это ошибка srouse: DateTime.Date(DateTime.LocalNow())-(#datetime(2021, 08, 01, 00, 00, 0)) . Не преобразуйте DateTime.LocalNow() сейчас в тип даты, если вы хотите вычесть тип даты и времени. Упростите до DateTime.LocalNow()-#datetime(2021, 08, 01, 00, 00, 0) .

2. Спасибо Алексис Олсон. Заставляет код работать, но я хочу, чтобы с 1 августа по настоящее время каждая дата была указана как 08/01/2021 12:00:00 утра — 08/01/2021 12:30:00 утра -08/01/2021 01:00:00 Я

Ответ №1:

Используйте следующий код M в запросе питания. Это даст 100 дат. Вы можете установить размер шага 100 в соответствии с требуемым значением.

 let  Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMtQ1sNQ1MlAwNLIyMAAipdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Datetime = _t]),  #"Changed Type" = Table.TransformColumnTypes(Source,{{"Datetime", type datetime}}),  #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each DateTime.LocalNow()),  #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type datetime}}),  #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Datetime", "Starttime"}, {"Custom", "Endtime"}}),  #"Added Custom1" = Table.AddColumn(#"Renamed Columns", "Dates", each List.DateTimes([Starttime], 100, #duration(0, 0, 30, 0))),  #"Expanded Dates1" = Table.ExpandListColumn(#"Added Custom1", "Dates") in  #"Expanded Dates1"  

Комментарии:

1. Это не дает мне даты и времени, хотя — только дату

2. Я отредактировал ответ