第85天知识点:非完整日期时间差计算
一般,我们计算时间差都是按几天、几月以及几年这种完整的时间间隔来进行计算。
但有些时候,我们需要计算的时间差并不是一个完整的天、月、年。
比如:距指定日期半天后;
距现在15分钟后;
距现在3小时20分钟后。
对于这类不是完整天数的时间间隔,直接用DATEDELTA函数可以吗?
我们来试试看,以计算指定日期半天后时间为例。
结果如下:
结果证明,不可以!
那对于这类时间差该如何进行计算呢?
这里,需要借助2个函数。
第一个,DATETONUMBER函数。DATETONUMBER函数会将日期转化为13位时间戳。
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。
具体用法可参考下方函数卡片。
第二个,就是TODATE函数。TODATE函数可以将各种日期形式的参数转换为日期类型。
以下是TODATE函数的具体用法。
(整理自帆软帮助文档)
了解这两个函数之后,就好办了。
首先,通过DATETONUMBER函数计算出指定日期前/后任意时间的日期对应的时间戳。
然后,借助TODATE函数将上面计算出来的时间戳转化为指定格式的日期。
这样,对于不完整天数的时间差,也能轻松计算出来。
回到FineBI中,我们看一下具体的操作方法。
计算指定销售日期6小时15分钟后对应的时间,下面今天用到的数据表。
前面我们尝试使用了DATEDELTA函数去计算,发现不可行。这里,我们使用TODATE结合DATETONUMBER函数去进行计算。
首先,使用DATETONUMBER函数将指定日期转化为时间戳,并加上或减去所需的时间,大家记得一定要将时间转换为毫秒!
6小时15分钟,转化成毫秒就是6*60*60*1000+15*60*1000,写成公式就是:
结果如下:
这里计算出来的是日期对应的毫秒数,但是这样的日期格式不直观,所以,我们还需要借助TODATE函数转化一下日期格式。
结果如下:
这样就得到了我们想要的结果。
熟练的话,可以直接将上述两个公式合并成一个。
当然,你还可以计算任意分钟、秒或者小时分钟秒后的时间,只需要将相应的时间转换为毫秒,并加到现有的日期上,然后转化成指定格式的日期即可。
今天关于如何计算不完整天数时间差的技巧就分享到这里。
感兴趣的小伙伴可以自己动手尝试一下。 |