时间戳 tiamstamp的简单使用 oracle

时间戳 tiamstamp的简单使用 oracle,第1张

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这串数据转换成时间显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9722220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存