temporalAdd

语法

temporalAdd(obj, duration, [unit])

别名:datetimeAdd

详情

为时间变量加上一个指定的值。

参数

obj 是时间类型的标量或向量。

duration 是一个整数或 DURATION 类型数据。

unit 是一个字符串标量。
  • duration 是整数时,unit 表示:

    • duration 的单位,取值可以是:"ns"(nanosecond), "us"(microsecond), "ms"(millisecond), "s"(second), "m"(minute), "H"(hour), "d"(day), "w"(week), "M"(month), "y"(year), “B”(business day)

    • 交易日历的标识,例如:国外交易所的 ISO Code、国内交易所简称或自定义交易日历名称。对应的文件必须保存在 marketHolidayDir 中。

  • duration 是 DURATION 类型数据时,unit 无需设置。

注: 时间单位为 year 或 month 时,计算结果与 mysql 保持一致。Pandas 提供了一个时间偏移对象(Date offsets)来完成时间偏移工作,当 DateOffset 参数取 months 或 years 时,与 temporalAdd 单位为 M 或 y 的计算结果也一致。

例子

temporalAdd(2017.01.16,1,"d");
// output
2017.01.17

temporalAdd(2017.01.16,1,"w");
// output
2017.01.23

temporalAdd(2016.12M,2,"M");
// output
2017.02M

temporalAdd(2012.07.31T13:30:10.008,-1,'M');
// output
2012.06.30T13:30:10.008

temporalAdd(2012.07.31T13:30:10.008,1,'y');
// output
2013.07.31T13:30:10.008

temporalAdd(13:30:10.008007006,100,"ns");
// output
13:30:10.008007106

x=[12:23:34, 23:34:45];
temporalAdd(x, 10m);
// output
[12:33:34,23:44:45]

为 2021.08.06 增加 4 个工作日。

temporalAdd(2021.08.06, 4B)
// output
2021.08.12

按照 CFFEX 的交易日历,为 date 增加 2 个交易日。

date=[2023.01.01, 2023.01.02, 2023.01.03, 2023.01.04]
temporalAdd(date,2,`CFFEX)
// output
[2023.01.04,2023.01.04,2023.01.05,2023.01.06]
temporalAdd(datetime(2020.08.31), -2M)
// output
2020.06.30T00:00:00

# pandas中 DateOffset 传入参数 months,计算结果一致
pd1 = pd.Timestamp("2020.08.31")
print(pd1 -pd.offsets.DateOffset(months=2))
// output
2020-06-30 00:00:00

temporalAdd(datetime(2020.02.29), -1y)
// output
2019.02.28T00:00:00
temporalAdd(datetime(2020.02.29), -4y)
// output
2016.02.29T00:00:00

// pandas 中 offset 设为1年
pd1 = pd.Timestamp("2020.02.29")
print(pd1 - pd.offsets.DateOffset(years=1))
// output
2019-02-28 00:00:00
// pandas 中 offset 设为4年
pd2 = pd.Timestamp("2020.02.29")
print(pd2 - pd.offsets.DateOffset(years=4))
// output
2016-02-29 00:00:00