1

unix 时间戳值通过 MySQL DB 的数据服务传入 HANA。

但是,我可以使用以下语句找到日期,但想知道 SAP HANA 或数据服务设计器中是否有任何内置函数可以完成这项工作?还有什么方法可以从结果中获取时间,比如我们有 TO_DATE 日期,而不是 RIGHT()?

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

它将返回 2016-01-08 13:56:45

4

2 回答 2

4

您可以使用 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

于 2017-03-21T21:07:28.473 回答
0

这种转换确实适合在用户定义函数 (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

于 2017-03-22T08:40:17.447 回答