在 Spotfire 中使用 Datediff 的整数函数
Integer function with Datediff in Spotfire
我想在 Spotfire 中添加一个新列,这样我就可以得到这个人的年龄。
这是使用的函数:
Integer(DateDiff(Date(2018,3,31),Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE])))/365
然而,计算列 returns 为 (Empty)
。
如果我 运行 表达式没有 Integer()
和 /365
函数 returns 适当的天数。
使用函数Days
:
Days(DateDiff(Date(2018,3,31),Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE])))/365
解释:您的结果是一个时间跨度,因此无法转换为整数。 Days
函数将提取时间跨度的整数值。
我看到之前的答案解决了您的问题,但我为其他有类似问题的人提供了替代解决方案。
你目前计算一个人的年龄,方法是计算一个人在某个时间点(在你的例子中是 2018 年 3 月 31 日)活着的天数,然后除以天数乘以 365,结果为实数,例如 28.6 年。
除以 365,您的示例没有考虑闰年。这对您来说可能不是问题,但对其他用户来说可能是问题。
下面的表达式将
- Return 年数为实数(如28.6),如
你的
在计算中考虑闰年
DateDiff("year",
Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE]),
Date(2018,3,31))
请注意,我已经格式化了表达式,因此 DateDiff 函数的每个参数都有自己的一行。显然,表达式可以折叠成一行,我这样做只是为了提高清晰度。
此外,在 Spotfire 中为 DateDiff 函数提供的示例将两个日期中最早的日期作为第一个日期参数传递,并将较晚的日期作为第二个日期参数传递。这也成为我的习惯,所以这就是我在示例中放置日期参数的顺序。
我想在 Spotfire 中添加一个新列,这样我就可以得到这个人的年龄。 这是使用的函数:
Integer(DateDiff(Date(2018,3,31),Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE])))/365
然而,计算列 returns 为 (Empty)
。
如果我 运行 表达式没有 Integer()
和 /365
函数 returns 适当的天数。
使用函数Days
:
Days(DateDiff(Date(2018,3,31),Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE])))/365
解释:您的结果是一个时间跨度,因此无法转换为整数。 Days
函数将提取时间跨度的整数值。
我看到之前的答案解决了您的问题,但我为其他有类似问题的人提供了替代解决方案。
你目前计算一个人的年龄,方法是计算一个人在某个时间点(在你的例子中是 2018 年 3 月 31 日)活着的天数,然后除以天数乘以 365,结果为实数,例如 28.6 年。
除以 365,您的示例没有考虑闰年。这对您来说可能不是问题,但对其他用户来说可能是问题。
下面的表达式将
- Return 年数为实数(如28.6),如 你的
在计算中考虑闰年
DateDiff("year", Date([Y_BIRTH_DATE],[M_BIRTH_DATE], [D_BIRTH_DATE]), Date(2018,3,31))
请注意,我已经格式化了表达式,因此 DateDiff 函数的每个参数都有自己的一行。显然,表达式可以折叠成一行,我这样做只是为了提高清晰度。
此外,在 Spotfire 中为 DateDiff 函数提供的示例将两个日期中最早的日期作为第一个日期参数传递,并将较晚的日期作为第二个日期参数传递。这也成为我的习惯,所以这就是我在示例中放置日期参数的顺序。