今天我们继续来了解下,在Power Query中如何提取需要的时间。
1. 获取当前时间
DateTime.LocalNow() 类似Excel中的Now函数
DateTime.FixedLocalNow() 这个函数虽然解释是能够固定数值,但是目前还没找到前提条件,如果有高手能够解释下固定时间的前提操作,忘告知。
2. 提取秒
Time.Second(datetime as any) as number
返回的是秒的数字格式,因为涉及到最小单位毫秒,所以这个数值可以是小数。
Time.Second(#datetime(2018,11,11,0,22,0.5))=0.5
Time.Second(#datetimezone(1,1,1,1,0,0.5,0,0))=0.5
Duration.Seconds(duration as nullable duration) as nullable number
返回的是秒的数字格式。
Duration.Seconds(#duration(0,0,0,50.55))=50.55
Duration.TotalSeconds(duration as nullable duration) as nullable number
返回的是秒的数字格式。
Duration.TotalSeconds(#duration(0,0,1,0))=60
3. 提取分钟
Time.Minute(datetime as any) as nullable number 返回的是分钟的数字格式0-60
Time.Minute(#datetime(2018, 12, 31, 9, 15, 1))=1
Duration.Minutes(duration as nullable duration) as nullable number
返回的是分钟的数字格式(如果是秒换算,计算方式是往下舍入)
Duration.Minutes(#duration(0,0,0,119))=1
Duration.TotalMinutes(duration as nullable duration) as nullable number
返回持续时间的总分钟数。
Duration.TotalMinutes(#duration(0,1,0,0))=60
DateTimeZone.ZoneMinutes(datetimezone as nullable datetimezone) as nullable number
提取时间区域的分钟数,请注意,提取的分钟数是除60后的余数。
DateTimeZone.ZoneMinutes(#datetimezone(2018, 11, 15, 0, 0, 0, 8, 61))=1
4. 提取小时
Time.Hour(datetime as any) as nullable number
Time.Hour(#datetime(2018,11,11,15,0,0))=15
Time.StartOfHour(datetime as any) as any
返回的是小时初始值,返回的格式是提取数据的格式
Time.StartOfHour(#datetime(2018,11,11,12,30,30))=2018/11/11 12:00:00
Time.EndOfHour(datetime as any) as any
返回的是小时初始值,返回的格式是提取数据的格式
Time.EndOfHour(#datetime(2018,11,11,12,30,30))=2018-11-11T12:59:59.9999999
Duration.Hours(duration as nullable duration) as nullable number
返回的是数字格式,向下舍去计算小时,如果是小时位则除24后取整。
Duration.Hours(#duration(0,1,60,0))=2
Duration.Hours(#duration(0,23,60,0))=0
Duration.TotalHours(duration as nullable duration) as nullable number
返回持续时间的总小时,可以为小数。
= Duration.TotalHours(#duration(1,0,30,0))=24.5
DateTimeZone.ZoneHours(datetimezone as nullable datetimezone) as nullable number
提取时间区域的小时数,请注意,提取的偏移小时数。
DateTimeZone.ZoneHours(#datetimezone(2018, 11, 15, 0, 0, 0, 8, 61))=9
5. 提取星期
Date.DayOfWeek(datetime as any, optional firstDayofWeek as nullable Day.Type) as nullable number
提取的是一个数值0-6,第2个参数是设置星期从那天开始,默认是从星期一开始算起(参数1)。第二参数为数值0-6
Date.DayOfWeek(#date(2018,11,11))=6
解释:从星期一开始算的第7天(因为从0开始,6代表星期一之后的6天,也就是星期日)
Date.DayOfWeek(#date(2018,11,11),0)=0
解释:从星期日开始算的第0天,0代表当天,也就是星期日。
Date.DayOfWeek(#date(2018,11,11),3)=4
解释:从星期四开始算的之后3天,也就是星期日。
Date.DayOfWeekName(date as any, optional culture as nullable text) as nullable text
返回星期的名称文本,第二参数可以选择国家地区。
Date.DayOfWeekName(#date(2018,11,11),"ru")=воскресенье
Date.DayOfWeekName(#date(2018,11,11),"cn")=星期日
Date.DayOfWeekName(#date(2018,11,11),"en")=Sunday
Date.WeekOfYear(datetime as any, optional firstDayOfWeek as nullable Day.Type) as nullable number
返回属于年份的哪一周,结果为数字1-53;第2参数可以选择指定星期几为初始值,参数为0-6,0代表星期日。
Date.WeekOfYear(#date(2018,1,6),1)=1
解释:因为2018年1月6日正常应该是周六,如果从周一开始计算,这个为第1周。
Date.WeekOfYear(#date(2018,1,6),3)=2
解释:因为是从数字3,也就是星期四开始计算,个人理解是以星期四为从上周四到本周三为一个区间,所处的1,2,3号都处于第一周,从4号开始都处于第二周。
Date.WeekOfMonth(datetime as any, optional firstDayofWeek as nullable Day.Type) as nullable number
返回所处月份中的第几周,返回的是1-5的数字。第2参数可以选择指定星期几为初始值,参数为0-6,0代表星期日。
Date.WeekOfMonth(#date(2018,11,11),1)=2
Date.WeekOfMonth(#date(2018,11,11),0)=3
Date.StartOfWeek(datetime as any, optional firstDayOfWeek as nullable Day.Type) as any
返回当期星期初始时间,第2参数可以选择指定星期几为初始值,参数为0-6,0代表星期日。返回的格式为原始日期数据格式。
Date.StartOfWeek(#date(2018,11,11))=2018/11/5 星期一
Date.StartOfWeek(#datetime(2018,11,11,20,0,30))=2018/11/5 星期一 上午 12:00:00
Date.EndOfWeek(datetime as any, optional firstDayOfWeek as nullable Day.Type) as any
返回当期星期初始时间,第2参数可以选择指定星期几为初始值,参数为0-6,0代表星期日。返回的格式为原始日期数据格式。
Date.EndOfWeek(#date(2018,11,11))=2018/11/11 星期日