oracle中將number型別毫秒值轉為時間型別

2021-08-26 13:11:28 字數 650 閱讀 6273

在搞資料庫時,發現有這樣的乙個字段,型別是number(38),檢視了一下裡面的資料,都是這樣的,

1323957678114

1321326994295

1322129306804

1322129716220

猜到應該是2023年1月1號0點0分距現在的毫秒值。

解決辦法是寫乙個轉換函式:

create or replace function num_to_date(in_number number) return date is

begin

return(to_date('19700101','yyyymmdd')+ in_number/86400000+to_number(substr(tz_offset(sessiontimezone),1,3))/24 );

end num_to_date;

其中:加上to_number(substr(tz_offset(sessiontimezone),1,3))/24的用意為加上當地時區的的時間差,咱們是東八區to_number(substr(tz_offset(sessiontimezone),1,3))的值為8,除以24得到天。

然後使用函式就可以了

select num_to_date(t.actingtime) from 表名 t;

oracle 學習筆記 number

1 number可以儲存整數和非整數。儲存非整數時,數字的有效位數稱作精度,右邊的小數部分稱作刻度 小數字數 例如 數字 29.1963的精度為6,刻度為4。最大精度38,資料上顯示最大刻度可以為127,我本地測試也建立除了number 38,127 的字段,但是一直沒能成功插入數字。2 建立表 c...

ORACLE儲存之NUMBER型別

這篇是關於oralce對number型別儲存方式的探析,以及試圖對設計者的初始意圖進行解釋.最近網上看了很多對 oracle 怎樣進行資料儲存描述的 感覺都不好理解 於是參照了很多文章 自己琢磨了下幾種簡單資料型別的儲存 number型別 oracle 對number 的儲存,是按一定規則進行轉換以...

Oracle中的number型別

number型別的語法很簡單 number p,s p 精度位 有效數字位 precision,是總有效資料位數,取值範圍是38,預設是38,可以用字元 表示38。s 小數字,scale,是小數點右邊的位數,取值範圍是 84 127,預設值取決於p,如果沒有指定p,那麼s是最大範圍,如果指定了p,那...