Как вырезать дату из штампа даты и времени - Hyperion

Я использую Hyperion Reporting Studio с базами данных Oracle и DB2. У нас есть поля с датой открытия и датой закрытия, поэтому, естественно, формат будет 02.06.16 18:18:05 для полей даты открытия или закрытия. Есть ли способ обрезать раздел даты, чтобы оставить только отметку времени? Я пробовал TURNC, а также пользовательский SQL, и ничего не работает. Я знаю, что могу сделать это в Excel, используя формулу =ВРЕМЯ. Я мог бы либо добавить вычисляемый элемент в запрос, либо результаты, я просто не знаю, что делать.


person Joe    schedule 03.06.2016    source источник
comment
Если вы покажете, что вы пробовали и что у вас получилось (и что вы ожидали получить), это было бы хорошим началом, я думаю.   -  person mustaccio    schedule 04.06.2016


Ответы (2)


Возможно, правильное использование to_char?

    SQL> select to_char(sysdate,'dd-Mon-yyyy hh24:mi:ss') full_date,
  2  to_char(sysdate,'yyyy-mm-dd') date_only,
  3  to_char(sysdate,'hh24:mi:ss') time_only
  4  from dual;

FULL_DATE            DATE_ONLY  TIME_ONL
-------------------- ---------- --------
03-Jun-2016 16:30:38 2016-06-03 16:30:38

Для более полного объяснения форматов даты/времени в Oracle см. http://edstevensdba.com/oracle-data-types/understanding-oracle-date-formats/

person EdStevens    schedule 03.06.2016

Один из способов — изменить тип данных. Это неправильный способ сделать это, и может быть опрометчивым в зависимости от того, что вы делаете, но это избавит от многих головных болей с форматированием.

Чтобы изменить тип данных: в разделе Запрос в поле строки запроса перейдите в Свойства (можно дважды щелкнуть, либо правой кнопкой мыши и выбрать Свойства). Это покажет вам SQL для этого столбца/поля. Справа будет кнопка Опции. Все, что он делает, это показывает тип данных. Обычно это лучшее предположение Hyperion, основанное на базовом источнике данных. Измените его на Время и снова обработайте. Это изменит все последующее использование этого поля для каждого дочернего раздела: результаты, сводные данные и т. д. на основе этого раздела запроса.

Еще один способ – изменить числовой формат. Это то, что нужно использовать, если вы просто заботитесь о косметике и хотите, чтобы она применялась только к этому разделу. В разделе (Результаты/Сводка/и т. д.) щелкните столбец правой кнопкой мыши и выберите «Число». Затем выберите подходящий формат времени.

Другой способ, если вам действительно нужно удалить дату для вычислений, вы можете преобразовать ее в строку, удалить дату из строки, а затем преобразовать ее обратно во время. В разделе «Результаты» щелкните правой кнопкой мыши «Добавить вычисляемый элемент», затем выполните что-то вроде

var objField = YOUR_DATETIME_COLUMN;
var strField = ToChar(objField);
var numFirstspace = strField.indexOf(' ');
var strTime = strField.substring(numFirstspace);
var tmTime = ToDate(strTime);
tmTime

Предполагая, что я понял это правильно, он все равно будет показывать что-то вроде 01/01/1904 HH:mm AM/PM ... поэтому вам все равно нужно щелкнуть правой кнопкой мыши столбец, выбрать «Число» и изменить формат числа на свое время.

Другой способ — добавить вычисляемый элемент в строку запроса вашего запроса. Это влечет за собой то же самое, что и в предыдущей версии, но с использованием синтаксиса SQL вместо версии Javascript от Hyperion.

person undrline - Reinstate Monica    schedule 25.07.2016