第91天知识点:计算时间差
上一篇文章中,我们介绍了甘特图的制作方法,文章频繁用到了一个函数:DATESUBDATE。
了解时间函数的小伙伴应该知道,这是一个计算时间差的函数。
其实关于时间差的计算,FineBI中也提供了很多种计算方式。
今天,我们就来看一看常见的几种时间差的计算方式。
下图是我们今天使用到的数据表,我们需要依赖此表计算出项目结束时间与开始时间之间相差的天数。
方式一:新增时间差列
结果如下:
这种方式很简单,只需要选择两个需要进行计算的时间字段,然后选择时间差的展示单位,就可以得到想要的效果。
但这种方式,也存在一个弊端,就是无法灵活调整差值。
举个例子,当上面的数据表中项目结束时间不是以00:00:00结束,而是以23:59:59结束,这也就意味着,我们需要在上面结果的基础上+1才能得到实际的时间差。
但通过新增时间差列的方式计算的时间差就会比实际周期少1天。
这个时候,我们可以用上面提到的DATESUBDATE函数来实现效果。
方式二:DATESUBDATE函数
结果如下:
有的小伙伴肯定会好奇,为什么要使用函数计算时间差,而不是直接将两个时间相减呢?这样不是更方便大家延续在Excel中的使用习惯吗?
我们来看一下结果:
结果怎么是这么大的数值?和想象中好像不太一样呢。
但实际结果并没有错,一长串数字是以毫秒为单位展示的时间差。
两个时间直接相减在Excel中可以默认按天为单位生效,但是在FineBI中,两个时间直接相减默认会按毫秒为单位生效。
简单点可以这么理解:先将项目开始时间及结束时间换算成毫秒,然后两个毫秒值相减得到的就是上图的结果。
所以,如果想在FineBI中直接使用两个时间相减计算出时间差,还需要将结果从毫秒转化成天数(或者其他你想要的单位)。
结果如下:
但这个过程需要你对不同时间单位之间的换算有一定的了解,不然很容易出错。
接下来,我们来看另一种常用的时间差计算方式。
方式三:DATEDIF函数
结果如下:
既然,DATESUBDATE函数与DATEDIF函数都能计算时间差,为什么还要内置2个不同的函数呢?
因为DATESUBDATE函数与DATEDIF函数计算的时间差的单位是不一样的。
为了便于理解与记忆,我将上面几种计算方式整理归纳成了一份表格:
以后在选择使用哪个函数计算时间差时,就可以结合实际需求场景去使用了。
感兴趣的小伙伴自己动手尝试一下吧~ |