2016-08-23 2 views
0

私はHANAプラットフォーム上にJIVEデータベースを持っています。 JIVEUSERテーブルは、JIVE上のすべてのユーザーの情報が最後に記録されたものを追跡します。 「lastloggedin」列はBIGINTデータ型です。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" ; 

Error: [314]: numeric overflow: search table error: [6944] AttributeEngine: overflow in numeric calculation;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

lastloggedinは、ミリ秒を含むUnixタイムスタンプのようです。小数点以下の値にADD_SECONDS作品ならば

1463427879839 -> 2016-05-16 19:44:39.839 

1000で割るようにしてください、私も、知りません。

-- 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) 
関連する問題