如何从 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
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