【问题标题】:How to create a calendar table in power query如何在电源查询中创建日历表
【发布时间】:2021-10-21 01:55:34
【问题描述】:

最早的日期是 2021 年 8 月 1 日上午 12 点,增量为 30 分钟,最大日期是 DateTime.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

【问题讨论】:

  • 这是错误来源:DateTime.Date(DateTime.LocalNow())-(#datetime(2021, 08, 01, 00, 00, 0))。如果要减去 datetime 类型,请不要将 DateTime.LocalNow() 现在转换为 date 类型。简化为DateTime.LocalNow()-#datetime(2021, 08, 01, 00, 00, 0)
  • 感谢亚历克西斯奥尔森。使代码工作,但我想要的是从 8 月 1 日到现在,我希望每个日期都像 08/01/2021 12:00:00 AM - 08/01/2021 12:30:00 AM -08/01/ 2021 上午 01:00:00

标签: powerbi powerquery


【解决方案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"

【讨论】:

  • 这并没有给我日期时间 - 只是日期
  • 我已编辑答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-19
  • 2020-10-31
相关资源
最近更新 更多