0

我有一个计算来获得当年的外部招聘,但我也想创建一个从去年获得招聘的字段。

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

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

4

1 回答 1

1

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

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

于 2021-07-30T22:43:51.980 回答