oracle日期转换及时间差

来源:互联网 发布:matlab矩阵qr分解 编辑:程序博客网 时间:2024/05/17 01:24

oracle date与number类型间的转换

我们在保存时间到数据库时,有时候会保存long型的数据,固定长度是13位,是用当前时间减去1970-01-01,再换算成毫秒得到的结果。

 

oracle中的实现方式:

----------------------------------------------

1,date转long :


当前时间转成long :

select sysdate,
(sysdate- to_date('1970-01-01','yyyy-mm-dd'))* 24*60*60*1000
current_milli from dual;

 

2,long转date

select   to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
+   1241450728000/1000/24/60/60  from   dual



oracle计算时间差

Oracle函数可以实现诸多的功能,下面就介绍使用Oracle函数计算时间差的实现方法,如果您对Oracle函数方面感兴趣的话,不妨一看。

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒):

天:

ROUND(TO_NUMBER(END_DATE - START_DATE))

小时:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)

分钟:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)

秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

毫秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)