函数列表
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') |