今天我们来了解下,在Power Query中如何提取需要的时间。
日期作为业务维度里面一个很重要的因素,大部分的业务分析都离不开时间这个条件,所以对于时间的提取的准确性就显得尤为重要。
在转换获取中,我们也可以通过快速方式及菜单方式进行转换格式获取。
1. 提取日期
一般情况下,分析业务很大一部分都是用天为最小计量单位,但是一般导入到PQ里面的日期数据格式,都是日期时间格式DateTime,后面会带有0:00:00的时间后缀。但是我们只需要年月日的时间,那我们可以通过函数进行提取,也可以通过菜单进行快速转换。
DateTime.Date(datetime as any) as nullable date
因为参数中是any,所以参数内的格式可以是日期,日期时间,时间区域等格式。
DateTime.Date(#date(2018,11,11))=2018/11/11
DateTime.Date(#datetimezone(2018, 11, 11, 0, 0, 0, 8, 0))=2018/11/11
DateTime.Date(#datetime(2018,11,11,1,1,0))=2018/11/11
2. 提取年份
Date.Year(datetime as any) as nullable number
Date.Year(#datetime(2018,11,11,1,1,0))=2018
注意:虽然参数格式是any,但是也需要包含有年份数据的格式。如果是纯时间格式则会发生错误。
Date.StartOfYear(datetime as any) as any 提取起始年份
Date.StartOfYear(#datetime(2018,11,11,1,1,0))=2018/1/1 0:00:00
Date.StartOfYear(#date(2018,11,11))=2018/1/1
生成的格式是转换数据的格式。
Date.EndOfYear(datetime as any) as any 提取结束年份
Date.EndOfYear(#datetime(2018,11,11,1,1,0))=2018-12-31T23:59:59.9999999
3. 提取季度
Date.QuarterOfYear(datetime as any) as nullable number
提取季度数,生成的是数值1-4
Date.StartOfQuarter(datetime as any) as any
提取起始季度,返回的格式是提取数据的格式
Date.StartOfQuarter(#date(2018,11,1))=2018/10/1
Date.StartOfQuarter(#datetime(2018,5,1,09,10,1))=2018/4/1 0:00:00
Date.EndOfQuarter(datetime asany) asany
提取结束季度,返回的格式是提取数据的格式
Date.EndOfQuarter(#date(2018,11,1))=2018/12/31
Date.EndOfQuarter(#datetime(2018,11,1,12,10,10))=2018-12-31T23:59:59.9999999
4. 提取月份
Date.Month(date as any) as nullabel number
返回的是月份数字格式
Date.Month(#date(2018,11,11))=11
Date.MonthName(date as any, optional culture as nullable text) as nullable text
返回的是月份名称文本格式,第2参数可以选择中文或英文
Date.MonthName(#date(2018,11,11),"cn")=十一月
Date.MonthName(#date(2018,11,11),"en")=November
Date.StartOfMonth(datetime as any) as any
提取初始月份,返回的格式是提取数据的格式
Date.StartOfMonth(#date(2018,11,11))=2018/11/1
Date.StartOfMonth(#datetime(2018,11,11,10,1,20))=2018/11/1 0:00:00
Date.EndOfMonth(datetime as any) as any
提取期末月份,返回的格式是提取数据的格式
Date.EndOfMonth(#date(2018,11,11))=2018/12/31
Date.EndOfMonth(#datetime(2018,11,11,10,1,20))=2018-11-30T23:59:59.9999999
5. 提取日
Date.Day(datetime as any) as nullable number
返回的是日的数字格式
Date.Day(#date(2018,11,11))=11
Date.StartOfDay(datetime as any) as any
返回初始日,返回的格式是提取数据的格式
Date.StartOfDay(#date(2018,11,11))=2018/11/1
Date.EndOfDay(datetiem as any) as any
返回结束日,返回的格式是提取数据的格式
Date.EndOfDay(#datetime(2018,11,11,23,00,00))=2018-11-11T23:59:59.9999999
Date.DaysInMonth(datetime as any) as nullable number
返回月的实际天数,返回格式是数值28-31
Date.DaysInMonth(#date(2016,2,10))=29
Date.DaysInMonth(#date(2018,2,10))=28
Date.DayOfYear(datetime as any) as nullable number
返回为当年的多少天,返回格式是数值1-366
Date.DaysOfYear(#date(2016,12,31))=366
Date.DaysOfYear(#date(2018,12,31))=365
Date.DaysOfYear(#date(2018,11,11))=315