2012-03-21 168 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