如何 Trim 来自日期时间戳的日期 - Hyperion

How To Trim Date from Date-Time Stamp - Hyperion

我正在将 Hyperion Reporting Studio 与 Oracle 和 DB2 数据库一起使用。我们的字段上有打开日期和关闭日期,因此对于打开日期字段或关闭日期字段,格式自然为 6/02/16 06:18:05 PM。有没有办法 trim 关闭日期部分,只留下时间戳?我已经尝试过 TURNC 以及自定义 SQL,但没有任何效果。我知道我可以使用 =TIME 公式在 excel 中完成。我可以在查询或结果中添加计算项,我只是不确定该怎么做。

也许正确使用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 中 date/time 格式的更完整说明,请参阅 http://edstevensdba.com/oracle-data-types/understanding-oracle-date-formats/

一种方法是更改​​数据类型。这不是正确的方法,根据您正在做的事情,这可能是不明智的,但它会在格式化方面省去很多麻烦。

要更改数据类型:在“查询”部分,在请求行的字段中,转到“属性”(可以双击,或右键单击 select 属性)。这将为您显示 column/field 的 SQL。在右侧,将有一个按钮选项。它所做的只是揭示数据类型。这通常是 Hyperion 基于底层数据源的最佳猜测。将其更改为时间并再次处理。这将更改每个子部分对该字段的所有后续使用:基于该查询部分的结果、数据透视等。

另一种方法是改变数字格式。如果您只关心外观,并且只希望将其应用到该部分,则可以使用此方法。在部分 (Results/Pivot/etc) 中,右键单击该列,然后选择 select 数字。然后,select适合你的时间格式。

另一种方式,如果您确实需要去掉日期以进行计算,您可以将其转换为字符串,从字符串中删除日期,然后将其转换回时间。在“结果”部分,右键单击“添加计算项”,然后执行类似

的操作
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 的内容...因此您仍然需要右键单击 select 数字列,然后将数字格式更改为您的时间.

另一种方法是在查询的请求行中添加计算项。这需要与上一个版本相同,但使用 SQL 语法而不是 Hyperion 版本的 Javascript.