我在HANA平台上有一个JIVE数据库。 JIVEUSER表跟踪JIVE上所有用户的lastloggedin信息。 " lastloggedin"列是BIGINT数据类型。
我想转换" lastloggedin"的值列成可读日期格式。
我创建了一个查询,将BIGINT转换为日期格式,然后就可以了。
SELECT ADD_SECONDS (TO_TIMESTAMP ('1970-01-01 00:00:00'), 1340961977) "add seconds"
FROM DUMMY;
1340961977 - 是BIGINT中的值,输出为:2012年6月29日9:26:17.0 AM
但是当我在我的表及其列上运行相同的查询时,我得到一个错误。请在下面找到查询和错误消息
查询:
SELECT ADD_SECONDS (TO_TIMESTAMP ('1970-01-01 00:00:00'), "lastloggedin") "add seconds"
FROM "JIVE"."JIVEUSER" ;
错误: [314]:数字溢出:搜索表错误:[6944] AttributeEngine:数值计算溢出; longdate [here] add_seconds(longdate' 1970-01-01 00:00:00.0000000',decfloat decfloat( fixed8_18" lastloggedin")),lastloggedin = 1463427879839 [fixed8_18.0]; checkNull false
任何人都可以帮我解决这个错误吗?
我正在使用SAP HANA Studio版本:2.0.19
答案 0 :(得分:0)
lastloggedin
似乎是一个Unix时间戳,包括毫秒。
1463427879839 -> 2016-05-16 19:44:39.839
尝试除以1000,我不知道ADD_SECONDS
是否适用于小数值。
-- this might work
ADD_SECONDS (TO_TIMESTAMP ('1970-01-01 00:00:00'), "lastloggedin" / 1000.000)
-- or this
ADD_SECONDS (TO_TIMESTAMP ('1970-01-01 00:00:00'), "lastloggedin" / 1000)