Как добавить две колонки (дата / время) вместе в таблице - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть набор данных, который был импортирован из Excel в Tableau.В Excel данные указаны как «8:15:00 AM».Когда он импортирован в Таблицу, он теперь имеет дату и время как «30.12.18.10 10:45:00».

Я пытаюсь выполнить дополнительную проблему между двумя столбцами даты и времени.Пример: Сон: 30.12.1899 10:45:00 Еда: 30.12.1899 00: 45: 00

Сон + Еда, которая должна давать 10:40 + 00:45 = 11:30

После долгих поисков и поисков видео я не нашел решения.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вы можете достичь желаемого результата, создав три вычисляемых поля.Позволяет вызвать одно из рассчитанных полей [часы], а другое [минут]Третье поле будет использовать значения из [часы] и [минуты] для правильного отображения результатов.Давайте назовем это третье поле [Sleep + Eating].

Для создания [часов]:

//[hours] calculated field
DATEPART('hour', [Sleep])+ DATEPART('hour', [Eating])

Для создания [минут]:

 //[hours] calculated field
    DATEPART('minute', [Sleep])+DATEPART('minute', [Eating])

На данный момент [часы] и [минуты] являются только суммамицелочисленных значений из [Sleep] и [Eating].Чтобы отобразить эти суммы в запрошенном вами формате, вам необходимо иметь третье вычисляемое поле, в котором объединяются часы и минуты, а также можно обрабатывать ситуации, когда минуты составляют в сумме более 60, или когда минутыдобавить не более 10. Рассчитанное поле [Sleep + Eating] достигнет этого.

Вот вычисленное поле [Sleep + Eating]:

//[Sleep + Eating] calculated field
IF  [minutes]< 10  THEN STR([hours])+":0"+STR([minutes])
ELSEIF [minutes]< 60 THEN STR([hours])+":"+STR([minutes])
ELSEIF [minutes]>= 70 THEN STR([hours]+1)+":"+STR([minutes]-60)
ELSE STR([hours]+1)+":0"+STR([minutes]-60)
END

Другие решения, которые пытаются обработатьВаши данные, такие как поле даты (см. ответ @Daniel Sims), могут быть проблематичными, если сумма часов превысит 23, результат прибавит день.Например, допустим, у вас были следующие значения в Excel:

14:45:00 Eating: 12/30/1899 14:45:00

Если вы используете мое решение, результат будет 25:02.Если вы используете ответ @Daniel Sims, результат будет 31.12.1899 1:02: 00, что, я думаю, не то, что вы хотите.

0 голосов
/ 26 февраля 2019

Создание рассчитанного как такового должно решить проблему:

DATEADD(
'hour', DATEPART('hour', [Eating]), DATEADD(
'minute', DATEPART('minute', [Eating]), DATEADD(
'second', DATEPART('second', [Eating]), [Sleep])))

Оттуда отображение времени поля можно при необходимости корректировать:

Вправо-нажмите имя поля> Свойства по умолчанию> Формат даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...