领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

PowerBI时间日期函数 powerbi日期相减

nixiaole 2024-11-12 13:46:35 知识剖析 27 ℃

时间是个神奇的概念,在数据分析中也是一个非常重要的维度,PowerBI里面时间日期函数和Excel里面差不多,功能也一样,所以打算用一篇写一下,如果对Excel里面的函数非常熟悉了,大概浏览一遍就行了,应该还是有那么几个可以加深一下印象,下面就开始了。

【TODAY】

TODAY()

返回当前日期,默认是返回datetime格式,但是时间部分全是0。

今天 = TODAY()


【NOW】

NOW()

以datetime格式返回当前日期和时间,精确到秒。

现在 = NOW()


【DAY】

DAY(<date>)

返回一月中的日期,1到31之间的数字。

月第N天 = DAY([日期])


【WEEKDAY】

WEEKDAY(<date>, <return_type>)

返回指示日期属于星期几的数字,1到7之间的数字。这里需要注意返回类型:

  • 返回类型:1,周从星期日 (1) 开始,到星期六 (7) 结束;
  • 返回类型:2,周从星期一 (1) 开始,到星期日 (7) 结束;
  • 返回类型:3,周从星期一 (0) 开始到星期日 (6) 结束。
星期几(1) = WEEKDAY([今天],1)
星期几(2) = WEEKDAY([今天],2)
星期几(3) = WEEKDAY([今天],3)


【WEEKNUM】

WEEKNUM(<date>[, <return_type>])

根据return_type值返回给定日期的周数。

有两个系统用于此函数:

  • 系统1:包含1月1日的周是一年的第一周,编号为第1周;
  • 系统2:包含一年第一个星期四的周是一年的第一周,编号为第1周。
  • return_type周开始于系统
    • 1 或省略星期日1
    • 2星期一1
    • 21星期一2
第N周1 = WEEKNUM([日期],1)
第N周2 = WEEKNUM([日期],2)
第N周21 = WEEKNUM([日期],21)


【MONTH】

MONTH(<datetime>)

以数字形式返回月份值,1到12之间的数字。

第N月 = MONTH([日期])


【QUARTER】

QUARTER(<date>)

将季度返回为从1到4的数值。

第N季度 = QUARTER([日期])


【YEAR】

YEAR(<date>)

返回日期的年份,1900到9999之间的四位整数。

第N年 = YEAR([日期])


【HOUR】

HOUR(<datetime>)

以数字形式返回小时值,0到23之间的数字。

小时数 = HOUR([现在])


【MINUTE】

MINUTE(<datetime>)

给定日期和时间值,以数字形式返回分钟值,0到59之间的数字。

分钟数 = MINUTE([现在])


【SECOND】

SECOND(<datetime>)

以数字形式返回时间值的秒数,0到59之间的数字。

秒数 = SECOND([现在])


【DATE】

DATE(<year>, <month>, <day>) 

以日期/时间格式返回指定的日期。

DATE日期 = DATE([第N年],[第N月],[月第N天])


【TIME】

TIME(hour, minute, second)

将以数值形式给定的小时、分钟和秒值转换为日期/时间格式的时间。

Time小时 = TIME([小时数],[分钟数],[秒数])


【DATEDIFF】

DATEDIFF(<start_date>, <end_date>, <interval>)

返回两个日期之间跨越的间隔边界的计数。

  • start_date:标量日期/时间值;
  • end_date:标量日期/时间值返回值;
  • interval:比较日期时要使用的间隔。值可以是下列任一值:

- SECOND

- MINUTE

- HOUR

- DAY

- WEEK

- MONTH

- QUARTER

- YEAR

间隔年数 = DATEDIFF([日期],[现在],YEAR)
间隔季度数 = DATEDIFF([日期],[现在],QUARTER)
间隔月数 = DATEDIFF([日期],[现在],MONTH)
间隔周数 = DATEDIFF([日期],[现在],WEEK)
间隔天数 = DATEDIFF([日期],[现在],DAY)
间隔小时 = DATEDIFF([日期],[现在],HOUR)
间隔分钟 = DATEDIFF([日期],[现在],MINUTE)


【EDATE】

EDATE(<start_date>, <months>)

返回在开始日期之前或之后指定月份数的日期。

3月后 = EDATE([今天],3)
3月前 = EDATE([今天],-3)


如果遇到月份最大天数小于开始日期月份天数,就会返回实际月份的最大值。比如2月最大28天,3月最大31天,如果3月作为开始月份,那么28-31号这几天减1个月到2月份都会显示2.28号↓

特殊2月 = EDATE(DATE(2021,3,30),-1)


【EOMONTH】

EOMONTH(<start_date>, <months>)

以日期/时间格式返回指定月份数之前或之后的月份的最后一天的日期。

有的时候需要通报每月数据完成率,但需要结合实际时间进度来看,看看完成率和时间进度是否一致,就可以通过这个函数进行计算了↓

本月最后一天 = EOMONTH([今天],0)
本月剩余天数 = DATEDIFF([今天],[本月最后一天],DAY)
本月时间进度 = DIVIDE(DAY([今天]),DAY([本月最后一天]))


【YEARFRAC】

YEARFRAC(<start_date>, <end_date>, <basis>)

计算两个日期之间的天数占全年天数的比值,比如开始日期是2021.3.1号,结束日期是2021.4.3,相差33天,那么他们的结果就是33/365。有个basis参数需要注意,去不同的值除以的数量不一样,一般情况选1就行了。

  • 0 - 美国 (NASD) 30/360
  • 1 - 实际天数/实际天数
  • 2 - 实际天数/360
  • 3 - 实际天数/365
  • 4 - 欧洲 30/360
YearF0 = YEARFRAC([日期],[今天],0)
YearF1 = YEARFRAC([日期],[今天],1)
YearF2 = YEARFRAC([日期],[今天],2)
YearF3 = YEARFRAC([日期],[今天],3)



End

最近发表
标签列表