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)