Помощь по разнице в датах в таблице - PullRequest
2 голосов
/ 21 марта 2012

Я использую 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

Ответы [ 2 ]

2 голосов
/ 08 августа 2012

Прежде всего, вам нужно немного изменить вычисляемое поле, чтобы оно возвращало положительное целое число вместо отрицательного.

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

Сделав это, щелкните правой кнопкой мыши на панели Размеры и создайте новое вычисляемое поле следующим образом:

IF [Age] < 18 then 1 else 0 END

Затем перетащите это второе вычисленное поле на полку Фильтры. Когда вы это сделаете, вы получите всплывающее окно, в котором вы можете выбрать значения фильтра. Установите флажок «1», затем «ОК», и это должно отфильтровать всех, кто в возрасте 18 лет или старше.

0 голосов
/ 26 ноября 2012

Следующее вычисленное поле возвращает истину тогда и только тогда, когда на сегодняшний день человеку исполнилось 18 лет

datediff('day', [DOB], dateadd('year', -18, today())) >= 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...