微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在datetrunc中获取上一年的值?

如何解决如何在datetrunc中获取上一年的值?

我有一个计算来获取当年的外部招聘,但我也想创建一个可以获取去年招聘的领域。

if datetrunc('year',today())-1 = datetrunc('year',[Start Date]) then [Start Date] else null END

today()-1 将 = 2020,但它没有给我任何值,只是 null

解决方法

DATETRUNC 的问题在于它将其保留为 DATE 字段。您不能从日期字段中减去 1。您必须使用 DATEADD 函数(参见第二个示例)

仅使用 YEAR()(或 DATEPART("year",[field]))更容易,但我更喜欢 YEAR(),因为它更短)。这会将数据类型更改为整数,您可以从中减去。

IF (YEAR(TODAY())-1 = YEAR([Start Date])) THEN [Start Date] END

else null 也是不必要的,但可以包含在内以确保完整性。如果与 IF 语句不匹配,则为 NULL。

另一个选项是使用 DATEADD 函数,因为您可以使用它向日期字段添加间隔,但有点乏味:

IF(
 DATEADD("year",-1,DATETRUNC("year",TODAY)) = DATETRUNC("year",[Start Date])
) THEN [Start Date] END

您仍然需要 DateTrnc 开始日期。这基本上会将月份和日期设置为 1。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。