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

时间:2017-03-21 16:25:53

标签: hana hana-sql-script

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

但是,我可以使用以下语句查找日期,但想知道SAP HANA或Data Services Designer中是否有可以执行此任务的内置函数?还有什么方法可以从结果中获取时间,就像我们有TO_DATE的日期那样RIGHT()吗?

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

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

2 个答案:

答案 0 :(得分:2)

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

给你:

Fri Jan 08 2016 13:56:45 GMT + 0000(UTC)08.01.2016 13:56:45

答案 1 :(得分: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