日期时间偏移
- 处理函数
- dt_add函数的参数如下:
dt_add(字段名, dt1=None, dt2=None, year(s)=None, month(s)=None, day(s)=None, hour(s)=None, minute(s)=None, second(s)=None, microsecond(s)=None, weeks(s)=None, weekday=None)
year(s)、month(s)、day(s)等参数的后面都带有s,表示这些参数可以有两种形式,即year和years,month和months等。以year和years为例,如果参数传递的是year,表示在年份粒度上覆盖为year参数的值;如果传递的是years,表示在年份粒度上增加years参数的值。同时要一起组合使用的dt_add函数支持在特定时间粒度上修改(增加、减少、覆盖)日期时间的值。
- dt_add中weekday参数通常和dt_MO、dt_TU等参数一起使用,表示特定星期几的偏移,如下例所示。
- dt_add函数的参数如下:
- 场景1:按年和月进行日期偏移。
- 原始日志
{ "time1" : "2019-06-04 2:41:26" }
- 加工规则1
e_set("time2", dt_add(v("time1"), year=2018))
- 加工结果1
{ "time1": "2019-06-04 2:41:26", "time2": "2018-06-04 02:41:26" }
- 加工规则2
e_set("time2", dt_add(v("time1"), years=2018))
- 加工结果2
{ "time1": "2019-06-04 2:41:26", "time2": "4037-06-04 02:41:26" }
- 原始日志
- 场景2:按周进行日期偏移。
- 原始日志:2019-06-04是周二
{ "time1" : "2019-06-04 2:41:26" }
- 加工规则
#time1的下一个星期一对应的日期 e_set("nex_Monday", dt_add(v("time1"), weekday=dt_MO(1))) #time1的上一个星期二对应的日期 e_set("previous_Tuesday", dt_add(v("time1"), weekday=dt_TU(op_neg(1)))) #time1的下下一个星期六对应的日期 e_set("nex_next_Saturday", dt_add(v("time1"), weekday=dt_SA(2))) #time1的上上一个星期日对应的日期 e_set("previous_previous_Sunday", dt_add(v("time1"), weekday=dt_SU(op_neg(2))))
- 加工结果
{ "time1": "2019-06-04 2:41:26", "previous_Tuesday": "2019-05-28 02:41:26", "previous_previous_Sunday": "2019-05-26 02:41:26", "nex_next_Saturday": "2019-06-15 02:41:26", "nex_Monday": "2019-06-10 02:41:26" }
- 原始日志:2019-06-04是周二