我正在使用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
答案 0 :(得分:2)
首先,您需要稍微修改计算字段,以便返回正整数而不是负整数。
DATEDIFF('year',DATETRUNC('year',[DOB]),DATETRUNC('year',NOW()))
完成后,右键单击“维度”窗格并创建一个新的计算字段,如下所示:
IF [Age] < 18 then 1 else 0 END
然后将第二个计算字段拖到“过滤器”功能区上。执行此操作后,您将看到一个弹出窗口,您可以在其中选择过滤器值。单击“1”复选框,然后单击“确定”,这样可以过滤掉18岁或以上的所有人。
答案 1 :(得分:0)
当且仅当此人今天为18或更多时,以下计算字段才返回
datediff('day', [DOB], dateadd('year', -18, today())) >= 0