以前はかなり最近のデータ (1960 年代から現在まで) があった開始時刻と終了時刻のデータベースがあり、長い整数として格納できました。これは unix タイムスタンプに非常に似ており、ミリ秒の精度のみであるため、java.util.Date.getTime() などの関数は現在の時刻の値になります。
これはこれまでうまく機能していましたが、最近 1860 年代のデータを取得したため、次のコードは、値が 1901 未満の場合 (ギブ オア テイク) には機能しなくなりました。
to_timestamp('1-JAN-1970 00:00:00', 'dd-mon-yyyy hh24:mi:ss') + numtodsinterval(int_to_convert/(1000),'SECOND' );
-2177452800000 などのミリ秒単位の値でこれを試みると、2038 年のタイムスタンプで日付を返すなど、いくつかの問題が発生します。この問題を回避する方法はありますか? ドキュメントとタイムスタンプを調べたすべてのドキュメントは、-4000 (BC) までさかのぼって年を処理できるはずなので、numtodsinterval に問題があると思われます。
アイデアの提案は大歓迎です。