2012-03-21 166 views
2

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

我想获得一个正整数个人的出生日期(在数据库中表示为[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

我想弄清楚,什么是你遇到的实际问题?你是否得到了正确的整数值,但它是负值,还是计算的字段根本不起作用? – Talvalin 2012-07-18 23:44:24

回答

2

首先,你需要稍微修改计算字段,以便它返回一个正整数,而不是消极的。

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

随着维度窗格中后,右键单击并如下创建一个新的计算字段:

IF [Age] < 18 then 1 else 0 END 

然后拖动到过滤器架第二个计算字段。当你这样做时,你会得到一个弹出窗口,你可以选择你的过滤器值。点击“1”的复选框,然后确定,这应该筛选出年龄在18岁或以上的所有人。

+0

该计算字段不正确。它给几乎但不是18岁的人提供了错误的答案 – 2012-11-26 15:48:45

0

以下计算的字段返回true,当且仅当该人是18个或更多像今天

datediff('day', [DOB], dateadd('year', -18, today())) >= 0