如何从 HANA unix 时间戳字段中将日期和时间分别获取到两列中?

How to get date and time separately in to two columns from a HANA unix timestamp field?

unix 时间戳值通过来自 MySQL 数据库的数据服务到达 HANA。

不过,我可以使用以下语句找到日期,但想知道 SAP HANA 或 Data Services Designer 中是否有任何内置函数可以完成这项工作?还有什么方法可以从结果中获取时间,就像我们有 TO_DATE 的日期,而不是 RIGHT( )?

SELECT TO_VARCHAR (ADD_SECONDS( '1970-01-01 00:00:00', "1452261405"))

它会 return 2016-01-08 13:56:45

您可以使用 HANA 内置函数 TO_DATE 和 TO_TIME:

SELECT TO_TIMESTAMP (ADD_SECONDS( '1970-01-01 00:00:00', '1452261405')) TIMESTAMP,
       TO_DATE (ADD_SECONDS( '1970-01-01 00:00:00', '1452261405')) DATE,
       TO_TIME (ADD_SECONDS( '1970-01-01 00:00:00', '1452261405')) TIME
from PUBLIC.DUMMY

给你:

2016 年 1 月 8 日星期五 13:56:45 GMT+0000 (UTC) 08.01.2016 13:56:45

这种转换确实适合在用户定义函数 (UDF) 中实现。 这样的东西可以使您的代码更易于阅读:

FUNCTION "DEVDUDE"."sandpit::epoch_to_seconddate" (IN epoc_date integer ) 
    RETURNS SQL_SECONDDATE seconddate
    LANGUAGE SQLSCRIPT
    SQL SECURITY INVOKER AS
BEGIN

    SQL_SECONDDATE = ADD_SECONDS( to_seconddate('1970-01-01 00:00:00'), :epoc_date);

END;

然后你就可以简单地使用它,就好像它是一个内置函数一样:

 select "sandpit::epoch_to_seconddate"(-1452261405) from dummy;

SQL_SECONDDATE
1923-12-25 10:03:15.0