Разница в строках в Таблице - PullRequest
0 голосов
/ 15 мая 2019

Я использую Tableau Server версии 10.4.3
У меня есть размер rTime, который имеет строковое значение. записи в rTime примерно такие
May 10, 2019 8:59:56.303 PM UTC
Я хочу проверить, является ли rTime сегодня или нет. Я не могу использовать DateParse, так как мой сервер не имеет этой функции.

Я создал вычисляемое поле CheckrTime с содержанием ниже:

STR(LEFT(SPLIT([rTime],':',1),LEN(SPLIT([rTime],':',1))-2))

Когда я перетаскиваю CheckrTime в рабочую область, вывод идет в формате ниже того, что я хотел:
May 10, 2019

  1. Когда я проверяю ISDATE("May 10, 2019") (обычная строка), он выводит TRUE, как и ожидалось, но когда я проверяю ISDATE(CheckrTime), он выводит FALSE. Почему?
  2. Причина, по которой я проверяю выше, в том, что я пытаюсь использовать функцию DATEDIFF таблицы следующим образом:
   DATEDIFF('day', DATE(CheckrTime), TODAY()) == 0

NOTE

  • Если кому-то интересно, я позаботился об уровне детализации.
  • Если у вас есть лучшее решение, чем то, за которым я следую, пожалуйста, скажите мне.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Расчетное поле (тип даты) зависит от используемой локали, которая определяет формат даты. Вы можете использовать функцию даты?

На сайте Tableau есть пример использования английской локали Для строки 06May2017 ДАТА (ВЛЕВО ([Дата оригинала], 2) + "/" + MID ([Дата оригинала], 3,3) + "/" + ВПРАВО ([Дата оригинала], 4))

Вышеупомянутые выделения / символ между цифрами, которые зависят от локали

0 голосов
/ 16 мая 2019

Это работает для меня. Я ожидал бы 10 мая <> 16 мая (сегодня) и поэтому вернул бы false. Однако, когда я изменяю ваш пример на сегодняшнюю дату, он на самом деле возвращается как правда.

Date calculation

Вы также можете попробовать эту формулу для даты LEFT([rTime],FINDNTH([rTime],' ',3)). Это немного менее сложно, но даст вам тот же ответ.

...