日期Table.TransformColumns(Power Query 之 M 语言)

数据源: 

       任意表,其中包含日期列

目标: 

       提取日期列中的元素 

操作过程: 

  选取日期列或日期时间列》【转换】》【日期&时间列】》【日期】》选取

   

 

 

M公式:  

  = Table.TransformColumns( 表, {{"列名1", 转换函数1, 数据类型1},…,{"列名n", 转换函数n, 数据类型n}}, 剩余列转换函数, 处理不存在的列)

  转换函数:

    年限(当前日期减去日期列中每一个日期):each Date.From(DateTime.LocalNow()) - _

    仅日期:DateTime.Date

      一列已是日期时,第二参数为{}

    分析(仅对文本型日期有效):each Date.From(DateTimeZone.From(_))

    年:Date.Year

    年份开始值:Date.StartOfYear

    年份结束值:Date.EndOfYear

    月份:Date.Month

    月份开始值:Date.StartOfMonth

    月份结束值:Date.EndOfMonth

    一个月的某些日(当月最大天数):Date.DaysInMonth

    月份名称:each Date.MonthName(_)

    一年的某一季度:Date.QuarterOfYear

    季度开始值:Date.StartOfQuarter

    季度结束值:Date.EndOfQuarter

    一年的某一周:Date.WeekOfYear

    一个月的某一周:Date.WeekOfMonth

    星期开始值(默认以周一为开始):Date.StartOfWeek

    星期结束值:Date.EndOfWeek

    天:Date.Day

    每周的某一天(周一从0起计):Date.DayOfWeek

    一年的某一日:Date.DayOfYear

    一天开始值(当天零点):Date.StartOfDay

    一天结束值:Date.EndOfDay

    星期几:each Date.DayOfWeekName(_)

例外:

  合并日期和时间:先后选取日期列和时间列

    = Table.CombineColumns( 表, {"日期列", "时间列"}, (columns) => List.First(columns) & List.Last(columns), "合并的日期时间列")

    Table.CombineColumns合并…Combine…

  最早:List.Min(列表)

  最新:List.Max(列表)

    List.Sum…统计信息

说明:

  所有的结束值,仅日期的为最后一天,带时间的为最后一天的23:59:59.9999999,显示成下一天。

扩展:

  日期转成包含年、月、日的记录:each Date.ToRecord(_)

  日期时间转成包含年、月、日、时、分、秒的记录:each DateTime.ToRecord(_)

  日期时间时区转成包含年、月、日、时、分、秒、时区时、时区分的记录:each DateTimeZone.ToRecord(_)

  日期函数

  日期时间函数

  日期时间时区函数

posted @ 2021-12-22 19:32  熬肥妖  阅读(531)  评论(0编辑  收藏  举报