You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DAX的GENERATESERIES生成每半小时递增的日期时间表

你只需要调整时间序列生成的逻辑,把原代码中逐小时生成时间的GENERATESERIES逻辑改为逐半小时生成即可,修改后的完整代码如下:

DateTime = 
ADDCOLUMNS (
    CROSSJOIN (
        CALENDAR(DATE(2021,01,01),DATE(2021,01,01)),
        SELECTCOLUMNS(
            GENERATESERIES(0,47,1),
            "Time",TIME(INT([Value]/2),MOD([Value],2)*30,0)
        )
    ),
    "DateTime", [Date] + [Time]
)

逻辑说明

  • 原代码中GENERATESERIES(0,23,1)生成0到23共24个值对应一天24个整点,修改为GENERATESERIES(0,47,1)生成0到47共48个值,对应一天48个半小时时段
  • 时间计算部分TIME(INT([Value]/2),MOD([Value],2)*30,0):序列值除以2取整得到小时数,序列值对2取余乘以30得到0或30分钟,最终实现每半小时一个时间点
  • 若需要调整日期覆盖范围,直接修改CALENDAR函数的起止日期参数即可,生成的时间表会自动对范围内每一天都生成48个半小时粒度的时间点

你也可以使用分钟作为序列生成基准,逻辑更直观:

DateTime = 
ADDCOLUMNS (
    CROSSJOIN (
        CALENDAR(DATE(2021,01,01),DATE(2021,01,01)),
        SELECTCOLUMNS(
            GENERATESERIES(0, 1439, 30), // 一天共1440分钟,步长设置为30分钟
            "Time", TIME(INT([Value]/60), MOD([Value],60), 0)
        )
    ),
    "DateTime", [Date] + [Time]
)

内容的提问来源于stack exchange,提问作者jcoke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:18:04