官方说明:
通过将numberOfDays天添加到datetime值dateTime,返回date、datetime或datetimezone结果。
dateTime:天数要添加到的date、datetime或datetimezone值。numberOfDays:要添加的天数。
Date.AddDays( dateTime as any, numberOfDays as number) as any
解读:
本文将介绍5个函数,分别为Date.AddDays,Date.AddMonths,Date.AddQuarters,Date.AddWeeks,Date.AddYears,由于语法接近,上方只放了其中一个函数的说明,其他类同。
由于PQ对数据类型的要求严格,导致很多小伙伴按照在excel中的思维,用日期直接加减一个整数,结果报错了:
原因上面说了,就是日期时间类型不能和数值型直接运算,所以要用到本文介绍的几个函数,正确的写法应该是:
第一参数给日期,第二参数给一个整数,可以是正整数,也可以是负整数,也可以是0。如果第二参数为负数,则代表往前推移。但是如果给一个小数,比如1.5,就会报错了。
这是增减天数,其他几个函数也类似,分别为增减月份、季度、星期和年,来看案例:
let
date = #date(2016,1,31),
day = Date.AddDays(date,-1), //2016/1/30 month = Date.AddMonths(date,1), //2016/2/29 quarter = Date.AddQuarters(date,1), //2016/4/30 week= Date.AddWeeks(date,-2), //2016/1/17 year = Date.AddYears(date,1) //2017/1/31in
year
可以看到比如1月30日这种,加1月返回2月29日,还是挺智能的。
需要注意的是,虽然函数的类为Date,但如果目标值为DateTime,也同样是可以的。比如
= Date.AddDays(#datetime(2017,7,24,1,2,3),1),返回2017/7/25 1:02:03。就是说你给date就返回date,给datetime就返回
datetime,不要看到是datetime就以为不行然后用DateTime.AddDays,实际上是没有这个函数的。
替代用法:
计算时间推移,尽管提供了这5个函数,但是你会发现有些情况还是用不了,比如往后推移半天即12小时,因为第二参数必须为整数你不可以给0.5。所以可以这样:
= #datetime(2017,7,24,1,2,3)+#duration(0,12,0,0),返回2017/7/24 13:02:03。
其中duration为持续时间,需要4个参数:天、时、分、秒,同样可以为正负整数和0。所以以上5个函数中的AddDays和
AddWeeks可以用这种方法替代,且更建议这种方法。一个是因为有四个参数比较灵活,另一个是因为如果使用函数嵌套,括号
多了容易分不清,而这种方法就比较清晰。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务