更新时间:2024-08-02 GMT+08:00
分享

日期时间偏移

  1. 处理函数
    • 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等参数一起使用,表示特定星期几的偏移,如下例所示。
  2. 场景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"
      }
  3. 场景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"
      }

相关文档