您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页PowerQuery技巧之Date.AddDays_Months_Quarters_Weeks_Years

PowerQuery技巧之Date.AddDays_Months_Quarters_Weeks_Years

来源:抵帆知识网
Date.AddDays/Months/Quarters/Weeks/Years

官方说明:

通过将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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务