Я использую Hyperion Reporting Studio с базами данных Oracle и DB2. У нас есть поля с датой открытия и датой закрытия, поэтому, естественно, формат будет 02.06.16 18:18:05 для полей даты открытия или закрытия. Есть ли способ обрезать раздел даты, чтобы оставить только отметку времени? Я пробовал TURNC, а также пользовательский SQL, и ничего не работает. Я знаю, что могу сделать это в Excel, используя формулу =ВРЕМЯ. Я мог бы либо добавить вычисляемый элемент в запрос, либо результаты, я просто не знаю, что делать.
Как вырезать дату из штампа даты и времени - Hyperion
Ответы (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/
Один из способов — изменить тип данных. Это неправильный способ сделать это, и может быть опрометчивым в зависимости от того, что вы делаете, но это избавит от многих головных болей с форматированием.
Чтобы изменить тип данных: в разделе Запрос в поле строки запроса перейдите в Свойства (можно дважды щелкнуть, либо правой кнопкой мыши и выбрать Свойства). Это покажет вам 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.