如何解决如何在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 举报,一经查实,本站将立刻删除。