永洪社区

标题: 请教:计算2个日期忽略年份的天数差值,类似Excel中的DATEDIF [打印本页]

作者: 这画面…不忍看    时间: 2021-12-13 10:11
标题: 请教:计算2个日期忽略年份的天数差值,类似Excel中的DATEDIF
有2个日期如2020年11月20日、2021年12月20日,计算2个日期忽略年份的天数差值,即12月20-11月20日=30,类似Excel中的DATEDIF(2020-11-20,2021-12-20,"YD"),在计算列和格间计算中应该使用哪个函数,谢谢!

作者: 美滋滋    时间: 2021-12-13 10:11
用dategap函数,该函数有几个类型可以选择,不过我看了一下,好像是有BUG,用什么类型计算,都不能忽略年。所以你要转变一下思路。自己把两个日期都转换成同一个年的日期,然后再进行计算,计算的结果再取绝对值就可以了。
例如你有两个日期,分别是dateA和dateB.那么脚本如下:

var date1 = new Date(2021,month(dateA),day(dateA));
var date2 = new Date(2021,month(dateB),day(dateB));
var datediff = dateGap(date1, date2, "dayofmonth");
debug(abs(parseInt(datediff)))
作者: _贝贝    时间: 2021-12-13 10:42
您好,目前BI暂时没有DATEDIF函数的YD类型,无法直接排除年做月、日的计算,可以参考下咱们目前支持的日期时间函数类型,
https://www.yonghongtech.com/hel ... m_highlightsub=date
作者: 这画面…不忍看    时间: 2021-12-13 11:31
笑呵呵 发表于 2021-12-13 10:37
用dategap函数,该函数有几个类型可以选择,不过我看了一下,好像是有BUG,用什么类型计算,都不能忽略年。 ...

感谢!我也试了几个结果都不是预期;没有直接可使用的函数,现在只能这样转换下了
作者: 这画面…不忍看    时间: 2021-12-13 11:35
永洪tech-zxx 发表于 2021-12-13 10:42
您好,目前BI暂时没有DATEDIF函数的YD类型,无法直接排除年做月、日的计算,可以参考下咱们目前支持的日期 ...

请考虑后续增加下,这个功能在计算工龄、期限等方面还是比较常用的
作者: 美滋滋    时间: 2021-12-13 14:09
这画面…不忍看 发表于 2021-12-13 11:31
感谢!我也试了几个结果都不是预期;没有直接可使用的函数,现在只能这样转换下了 ...

他那几个参数 dayofyear,dayofmonth,dayofweek,我觉得本来是可以支持的,但是这三个参数在实际应用中没有任何区别,所以我觉得是这个函数本身的BUG。
我的理解 dayofyear就应该是你本身的需求,不区别年,dayofmonth是不区分年月,dayofweek是不区分年月周,不管他了,目前应该只能这样变通一下使用了
作者: _贝贝    时间: 2021-12-13 14:40
这画面…不忍看 发表于 2021-12-13 11:35
请考虑后续增加下,这个功能在计算工龄、期限等方面还是比较常用的

好的,我这边内部反馈一下,后续版本会根据调研做优化




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4