如何从日期时间戳中修剪日期-Hyperion



我将Hyperion Reporting Studio与Oracle和DB2数据库一起使用。我们有一个有打开日期和关闭日期的字段,所以打开或关闭日期字段的格式自然是6/16 06:18:05 PM。有没有办法把日期部分去掉,只留下时间戳?我尝试过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中日期/时间格式的更完整说明,请参阅http://edstevensdba.com/oracle-data-types/understanding-oracle-date-formats/

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

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

另一种方法是更改数字格式。如果你只关心化妆品,只想把它涂抹在那个部位,那就用这个。在部分(Results/Pivot/etc)中,右键单击列,然后选择Number。然后,选择适合您的时间格式。

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

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语法而不是Hyperion版本的Javascript。

最新更新