sysdate 是当前时间
select sysdate from dual ;
insert into table values (sysdate) ; 字段类型需要为date
类似的都可以。
假设字段1的时间为2017/07/20 8:00:00
字段2的时间为2017/07/20 9:00:00时间相减即可:
select (字段2时间-字段1时间)/1440 as 时间差 from tableName
返回结果
60
1、首先第一种转换方式是:将2字符串类型的转换成数字类型的,这中方法转换直接用to_number()进行转换,具体的语法为to_number(str)就可以了。
2、第二种:将数字类型转换成字符串类型的。
这种转换方版式用to_char(),其实转换的方式有点类似上面的to_number()模式,至于后面的999代表的和上面的意思一样。
3、第三种:将日期类型转换成字符串类型
这种方法其实也用的是to_char(),就是将日期格式的转换成自己想要的格式类型的,这种方法比较个性化一点。
4、下面这种将日期类型转换成常见的字符串类型,这种转换方式用的频率比较多一点,也是一种比较全的字符串格式。
5、最后一种:将字符串类型转换成日期类型,这种转换方式用to_date()进行转换。用法也比较简单,转换的日期格式也是自己自定权义的。
6、完成效果图。
create or replace function HRF_GET_TIME(V_DATE DATE,V_NUM NUMBER,V_TYPE VARCHAR2) return date is
Result DATE;
begin
IF V_TYPE='D' THEN
select V_DATE+numtodsinterval(V_NUM,'DAY') INTO Result from dual;
ELSIF V_TYPE='H' THEN
select V_DATE+numtodsinterval(V_NUM,'HOUR') INTO Result from dual;
ELSIF V_TYPE='M' THEN
select V_DATE+numtodsinterval(V_NUM,'minute') INTO Result from dual;
ELSIF V_TYPE='S' THEN
select V_DATE+numtodsinterval(V_NUM,'SECOND') INTO Result from dual;
END IF;
return(Result);
end HRF_GET_TIME;
ORACLE中获得两个时间相差的秒数有以下方法:
一、常规方法:
1、创建表
create table t_timestamp (id number, t1 timestamp, t2 timestamp);
2、插入数据
insert into t_timestamp
values (1, to_timestamp('20120615233324', 'yyyymmddhh24miss'),
to_timestamp('20120619152354', 'yyyymmddhh24miss'));
二、通过EXTRACT函数获得对应的秒数:
将时间差求出来,然后通过EXTRACT函数对时间进行转换,获得对应的秒数。
1、第一种形式
sql>with t as (select t1 - t2 interval from t_timestamp where id = 1)
select extract(day from interval) 86400+ extract(hour from interval) 3600
+ extract(minute from interval) 60+ extract(second from interval) interval from t;
2、第二种形式
sql>select extract(day from t1-t2) 86400+ extract(hour from t1-t2) 3600
+ extract(minute from t1-t2) 60+ extract(second from t1-t2) interval from t_timestamp;
--889170
其他方法:
一、通过将时间转换为DATE方式,求出相应的秒数。
1、第一种形式
sql>select (tt1-0-(tt2-0))86400 interval from t_timestamp t
--889170
2、第二种形式
select (cast(tt1 as date)-cast(tt2 as date))86400 interval from t_timestamp t
二、如果是date时间格式,相对比较简单,可以直接通过时间差(天数)乘上84600即可。
其实TIMESTAMP可以直接比较大小。
截取以后还是TIMESTAMP类型,这个,这个如何做?
SELECT SYSTIMESTAMP, TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SSFF6') FROM DUAL
或者你要的是一个针对秒的数字,那就:
SELECT TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SSFF6') TIME,TO_CHAR(SYSTIMESTAMP, 'HH24') 60 60 + TO_CHAR(SYSTIMESTAMP, 'MI') 60 + TO_CHAR(SYSTIMESTAMP, 'SSFF6') SECONDS
FROM DUAL
以上就是关于时间戳 tiamstamp的简单使用 oracle全部的内容,包括:时间戳 tiamstamp的简单使用 oracle、oracle 数据库两个时间戳相减如何得到相差分钟、在oracle中如何把158763510041这串数据转换成时间显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)