oracle中将number类型毫秒值转为时间类型
2013-06-13 10:19
211 查看
在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的,
1323957678114
1321326994295
1322129306804
1322129716220
猜到应该是1970年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;
1323957678114
1321326994295
1322129306804
1322129716220
猜到应该是1970年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类型毫秒值转为时间类型
- oracle中将number类型毫秒值转为时间类型
- Oracle中将毫秒类型时间转换以及取到毫秒时间类型的解决办法
- oracle 将Number型字段转为时间类型 将毫秒转为时间类型的
- oracle 将Number型字段转为时间类型 将毫秒转为时间类型
- Oracle中,将number类型的毫秒数转换为时间格式
- Oracle中将毫秒数转换为timestamp类型的两种方法
- Oracle中 06-SEP-12 08.00.00.000000 AM 时间类型 转为 正常时间格式
- 修改有数据oracle字段类型 从number转为varchar
- Oracle时间戳(毫秒)转为Date
- oracle 中将number类型的数据转化成指定格式的小数
- Oracle将number类型的时间值转换成时间格式的字符串
- oracle字段类型由number转为格式化字符串
- Oracle 毫秒转为时间格式
- Oracle数据类型NUMBER
- oracle 的sql,查询时间为某年某月某日某时某分某秒等的记录,data或者TIMESTAMP(6)类型的字段
- oracle的number类型精度、刻度范围
- ORACLE NUMBER类型详解(二)
- oracle中的number类型用法及举例
- Oracle 如何查询Number类型的精度