2

我正在使用Tableau Software从数据库中创建一个计算字段,该字段将用于动态过滤数据。基本上,如果截至今天的出生日期在 18 岁以上,则应将其过滤掉。

我试图以正整数表示个人的出生日期(在数据库中表示为 [DOB])与今天的年数之间的差异。一旦我返回那个日期,我想评估它是高于还是低于 18 年。我一直在创建一个日期差异函数,但我不明白我缺少什么。

DATEDIFF('year',DATETRUNC('year',NOW()),DATETRUNC('year',[DOB]))

参考资料: http: //onlinehelp.tableausoftware.com/v7.0/pro/online/en-us/functions_functions_date.html

4

2 回答 2

2

首先,您需要稍微修改计算字段,使其返回正整数而不是负整数。

DATEDIFF('year',DATETRUNC('year',[DOB]),DATETRUNC('year',NOW()))

完成后,右键单击“维度”窗格并创建一个新的计算字段,如下所示:

IF [Age] < 18 then 1 else 0 END

然后将第二个计算字段拖到过滤器架子上。当您这样做时,您将看到一个弹出窗口,您可以在其中选择过滤器值。单击“1”复选框,然后单击“确定”,这应该会过滤掉所有 18 岁或以上的人。

于 2012-08-08T18:02:12.303 回答
0

当且仅当此人截至今天 18 岁或以上时,以下计算字段才返回 true

datediff('day', [DOB], dateadd('year', -18, today())) >= 0
于 2012-11-26T15:47:30.783 回答