如何將其從 Oracle 轉換為 Postgresql。
時間戳 := TO_CHAR(SYSDATE (TO_NUMBER(settime)/86400),'MM/DD/YYYY HH24:MI:SS');
試圖轉換,但這是一個錯誤。
時間戳 := TO_CHAR(CURRENT_TIMESTAMP (TO_NUMBER(settime)/86400),'MM/DD/YYYY HH24:MI:SS');

uj5u.com熱心網友回復:
從這里資料格式化
to_number ( 文本, 文本 ) → 數字
根據給定的格式將字串轉換為數字。to_number('12,454.8-', '99G999D9S') → -12454.8。
您需要提供數字格式。請參閱鏈接的其余部分以了解這些內容。
如果settime實際上是所有數字字符,您可以跳過格式并執行以下操作:
select '1234'::integer, '1.25'::numeric;
int4 | numeric
------ ---------
1234 | 1.25
所以像:
settime::integer/86400
uj5u.com熱心網友回復:
使用日期算術應該很簡單:
to_char(clock_timestamp() settime * INTERVAL '1 second', 'MM/DD/YYYY HH24:MI:SS')
uj5u.com熱心網友回復:
如果 settime 應該是毫秒,那么只需將它們添加為毫秒。Postgres 提供了方便的功能make_interval(),使這變得簡單:
current_timestamp make_interval(secs => settime::double precision / 1000)
我不清楚價值觀settime包含什么。以上假設是秒。
結果是一個正確的timestamp值,您可以使用to_char(). 但是,如果您將其存盤在變數中(分配timestamp := ...建議),那么我強烈建議不要將時間戳作為字串處理,而是timestamp使用data type timestamp宣告變數。將所有內容都作為字串處理是一種非常糟糕的做事方式(在 Postgres 和 Oracle 中一樣)。遷移可能是清理它的好機會。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/426889.html
標籤:PostgreSQL
下一篇:通過非空值進行SQL連接
