Oracle时间类型date,timestamp时间差计算

Oracle的时间类型有两种date和timestamp. date精确到秒,timestamp精确到毫秒.

1.计算date类型的时间差

可以先把年,月,日,小时,分,秒用to_char函数拆分出来,再用to_number函数转换成数值类型.有了这些单独分开的时间就好办了.就再一个个的去减,记得考虑单位换算就行.比如都转换成小时或分之类的

示例:

declare

v_date date;

v_year int;

v_month int;

v_day int;

v_hour int;

v_minute int;

v_second int;

begin

v_date := sysdate;

v_year :=to_number( to_char(v_date,'yyyy'));

--月,日,小时,分,秒的拆分方法和上面年的一样,只要把yyyy分别替换成mm,dd,hh,mi,ss就行了

end;

--timestamp类型的时间也可以用同样的方法,但是这只能精确到秒,后面的毫秒就忽略掉了

2.计算timestamp类型的时间差

用to_char函数不能拆分出毫秒来.可以用另外一个函数extract

示例

declare

v_t timestamp;

v_year int;

v_s float;

begin

v_t := systimestamp;

v_year := extract(year from v_t);

--月,日,小时,分的拆分方法和上面的年一样只要把year改成month,day,hour,minute就行.

v_s :=extract(second from v_t);--注意,这里虽然也只能拆分到秒,但这里的秒是带小数点的,小数点后面的就是毫秒了.

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值