附录:统计周期表达式参数

函数列表

lastNDate

  • 用法:最近N天周期的起始日期。

  • 参数

    • (必传)currentDate:当前日期,字符串,格式yyyyMMdd

    • (必传)preDays:最近N天,整型数字。

    • (必传)format:日期格式,yyyyMMdd

  • 返回值:

    • 最近N天周期的起始日期,字符串类型,格式yyyyMMdd

  • 示例

    • lastNDate('20180118', 7,'yyyyMMdd')返回20180112

cBeginDate

  • 用法:取N个自然周期之前的那个自然周期的起始日期。

  • 参数

    • (必传)currentDate:当前日期,字符串类型,格式yyyyMMdd

    • (必传)timeFormat:自然周期类型,允许的类型有:

      • w: 自然周。

      • m: 自然月。

      • q: 自然季度。

      • y: 自然年。

    • (选传)length:往前多少个自然周期,如果不传则默认为1。

    • (必传)format:日期格式,yyyyMMdd

  • 返回值

    • N个自然周期之前的那个自然周期的起始日期,字符串类型,格式yyyyMMdd

  • 示例

    • cBeginDate('20180118', 'm','yyyyMMdd')返回20171201

    • cBeginDate('20180118', 'w','yyyyMMdd')返回20180108

    • cBeginDate('20180118', 'w', 2,'yyyyMMdd')返回 20180101

cEndDate

  • 用法:取前一个自然周期的结束日期。

  • 参数

    • (必传)currentDate:当前日期,字符串,格式yyyyMMdd

    • (必传)timeFormat:自然周期类型,允许的类型有:

      • w: 自然周。

      • m: 自然月。

      • q: 自然季度。

      • y: 自然年。

    • (必传)format:日期格式,yyyyMMdd

  • 返回值

    • 前一个自然周期的结束日期,字符串类型,格式yyyyMMdd

  • 示例:

    • cEndDate('20180118', 'm','yyyyMMdd')返回20171231

    • cEndDate('20180118', 'w','yyyyMMdd')返回20180114

    • cEndDate('20180118', 'y','yyyyMMdd')返回20171231

tdBeginDate

  • 用法:取N个自然周期之前的那个自然周期的起始日期。与cBeginDate不同的是,如果不传length,则取的是当前时间周期的起始时间,因此这个函数适合用于计算"**截止当日"类型的指标。

  • 参数

    • (必传)currentDate:当前日期,字符串,格式yyyyMMdd

    • (选传)timeFormat:不传则返回19700101。自然周期类型,允许的类型有:

      • w: 自然周。

      • m: 自然月。

      • q: 自然季度。

      • y: 自然年。

    • (选传)length:往前多少个自然周期,如果不传则默认为0。

    • (必传)format:日期格式,yyyyMMdd。

  • 返回值

    • N个自然周期之前的那个自然周期的起始日期,字符串类型,格式yyyyMMdd

  • 示例:

    • tdBeginDate('20180118','yyyyMMdd')返回19700101

    • tdBeginDate('20180118', 'm','yyyyMMdd')返回20180101

    • tdBeginDate('20180118', 'w','yyyyMMdd')返回20180115

    • tdBeginDate('20180118', 'w', 2,'yyyyMMdd')返回20180101

CustomBeginDate

  • 用法:取N个自定义周期之前的那个自定义周期的开始日期(以当前日期所在自定义周期为第一个自定义周期),适用于计算跟随周期变化、周期规律、滑动但确定时间区间的数据统计周期,如定义统计周期财月、财年,常与CustomEndDate组合使用。

  • 参数

    • (必传)currentDate:当前日期,字符串,格式yyyyMMdd

    • (必传)timeFormat:自然周期类型,允许的类型有:

      • m: 自然月。

      • q: 自然季度。

      • y: 自然年。

    • (必传)customShift:自定义周期的开始日期,字符串,对于年、季,传入值的格式为MMdd,对于月的默认格式为dd。

      说明

      dd的值仅支持数字01~28

    • (选传)length:往前多少个自定义周期,如果不传默认为1,为0时返回当前日期所在周期的起始时间。

    • (必传)format:日期格式,yyyyMMdd

  • 返回值

    • N个自定义周期之前的那个自定义周期的开始日期,字符串类型,格式yyyyMMdd

  • 示例:

    • CustomBeginDate('20190802', 'y', '0401','yyyyMMdd')返回20180401

    • CustomBeginDate('20190802', 'y', '0401', 0,'yyyyMMdd')返回20190401

    • CustomBeginDate('20190802', 'q', '0101','yyyyMMdd')返回20190401

    • CustomBeginDate('20190802', 'm', '15','yyyyMMdd')返回20190615

    • CustomBeginDate('20190802', 'm', '15', 2,'yyyyMMdd')返回20190515

CustomEndDate

  • 用法:取N个自定义周期之前的那个自定义周期的结束日期(以当前日期所在自定义周期为第一个自定义周期),适用于计算跟随周期变化、周期规律、滑动但确定时间区间的数据统计周期,如定义统计周期财月、财年,常与CustomBeginDate组合使用。

  • 参数

    • (必传)currentDate:当前日期,字符串类型,格式yyyyMMdd

    • (必传)timeFormat:自然周期类型,允许的类型有:

      • m: 自然月。

      • q: 自然季度。

      • y: 自然年。

    • (必传)customShift:自定义周期的开始日期,字符串,对于年、季,传入值的格式为MMdd,对于月的默认格式为dd。

      说明

      dd的值仅支持数字01~28。

    • (选传)length:往前多少个自定义周期,如果不传默认为1。

    • (必传)format:日期格式,yyyyMMdd

  • 返回值

    • N个自定义周期之前的那个自定义周期的结束日期,字符串类型,格式yyyyMMdd

  • 示例

    • CustomEndDate('20190802', 'y', '0401','yyyyMMdd')返回20190331

    • CustomEndDate('20190802', 'q', '0101','yyyyMMdd')返回20190630

    • CustomEndDate('20190802', 'm', '15','yyyyMMdd')返回20190714

    • CustomEndDate('20190802', 'm', '15', 2,'yyyyMMdd')返回20190614

substring

  • 用法:返回start位置开始到字符串结束。位置从1开始。如果start为负数,则起始位置代表从字符串的末尾开始倒数。

  • 参数

    • (必传)currentDate:当前日期,字符串类型,格式yyyyMMdd

    • (必传)start:开始位置。

    • (必传)len:截取字符串长度。

  • 返回值

    • 从字符串s返回一个长度同len字符相同的子字符串,起始于位置n。

  • 示例

    • substring('20190802',1,4)返回2019

    • substring('20190802',1,6) 返回201908

lastNHour

  • 用法:最近N小时周期的起始小时。

  • 参数

    • (必传)currentDatetime:业务时间(小时),字符串类型,格式yyyyMMddHH0000

    • (必传)preHours:最近N小时,整型数字。

  • 返回值

    • 最近N小时周期的起始小时,字符串类型,格式yyyyMMddHH0000

  • 示例

    • lastNHour('20180118160000', 7)返回20180118100000

dthBeginDatetime

  • 用法:业务时间所在日期的零点。

  • 参数

    • (必传)currentDatetime:业务时间(小时),字符串类型,格式yyyyMMddHH0000

  • 返回值:

    • 业务时间所在日期的零点,字符串类型,格式yyyyMMdd000000

  • 示例:

    • dthBeginDatetime('20180118160000')返回20180118000000

lastNMinute

  • 用法:最近N分钟周期的起始分钟。

  • 参数

    • (必传)currentDatetime:业务时间(分钟),字符串类型,格式yyyyMMddHHmm00

    • (必传)preMinutes:最近N分钟,整型数字。

  • 返回值:

    • 最近N分钟周期的起始分钟,字符串类型,格式yyyyMMddHHmm00。

  • 示例

    • lastNMinutes('20180118164500', 45)返回20180118160000

dtmiBeginDatetime

  • 用法:业务时间所在日期的零点。

  • 参数

    • (必传)currentDatetime:业务时间(小时),字符串,格式yyyyMMddHH0000

    • (选传)timeFormat: 自然周期类型,允许的类型有:

      • h:小时。

  • 返回值

    • 当有timeFormat参数h时为业务时间所在小时的整点,字符串类型,格式yyyyMMddHH0000

    • 没有timeFormat参数h时为业务时间所在日期的零点,字符串类型,格式yyyyMMdd000000

  • 示例:

    • dtmiBeginDatetime('20180118160000')返回20180118000000

    • dtmiBeginDatetime('20180118164500', 'h')返回20180118160000

适用场景

函数

研发/建模

质量/分区表达式

lastNDate

支持

支持

cBeginDate

支持

支持

cEndDate

支持

支持

tdBeginDate

支持

支持

CustomBeginDate

支持

支持

CustomEndDate

支持

支持

substring

支持

-

lastNHour

支持

-

dthBeginDatetime

支持

-

lastNMinute

支持

-

dtmiBeginDatetime

支持

-

应用实例

统计周期

起始时间表达式

结束时间表达式

最近一天

${bizdate}

${bizdate}

最近 N 天

lastNDate('${bizdate}', N)

${bizdate}

最近 M ~ N 天

lastNDate('${bizdate}', M)

lastNDate('${bizdate}', N)

历史截止当日

tdBeginDate('${bizdate}')

${bizdate}

自然周

cBeginDate('${bizdate}', 'w')

cEndDate('${bizdate}', 'w')

自然月

cBeginDate('${bizdate}', 'm')

cEndDate('${bizdate}', 'm')

自然季

cBeginDate('${bizdate}', 'q')

cEndDate('${bizdate}', 'q')

自然年

cBeginDate('${bizdate}', 'y')

cEndDate('${bizdate}', 'y')

最近 2 个自然月

cBeginDate('${bizdate}', 'm', 2)

cEndDate('${bizdate}', 'm')

自然周截止当日

tdBeginDate('${bizdate}', 'w')

${bizdate}

自然月截止当日

tdBeginDate('${bizdate}', 'm')

${bizdate}

自然季截止当日

tdBeginDate('${bizdate}', 'q')

${bizdate}

自然年截止当日

tdBeginDate('${bizdate}', 'y')

${bizdate}

上个自然月截止当日

tdBeginDate('${bizdate}', 'm', 1)

${bizdate}

财年

CustomBeginDate('${bizdate}', 'y', '0401')

CustomEndDate('${bizdate}', 'y', '0401')