oracle根据秒数生成多少小时多少分钟多少秒

本文介绍了一个用于将秒数转换为小时、分钟和秒数格式的Oracle存储过程。该过程能根据输入的秒数灵活地输出相应的时间格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个需求,是根据给定的秒数,来生成多少小时多少分多少秒。比如给你一个2000秒,生成 '0小时33分20秒'

本来是在项目的数据库中写的sql。但是为了便于灵活使用,我写了一个存储过程,在我本地是测试通过了的。先上代码:

create or replace procedure test(NODE_CL_TIME IN  number,str out varchar2) is
begin
  select case when NODE_CL_TIME < 60 then
          '0小时' || '0分' || NODE_CL_TIME || '秒'
       
         when NODE_CL_TIME >= 60 and NODE_CL_TIME <= 3600 then
          '0小时' || floor(NODE_CL_TIME / 60) || '分' ||
          (NODE_CL_TIME - (floor(NODE_CL_TIME / 60) * 60)) || '秒'
       
         when NODE_CL_TIME > 3600 then
          floor(NODE_CL_TIME / 3600) || '小时' ||
          floor((NODE_CL_TIME - (floor(NODE_CL_TIME / 3600) * 3600)) / 60) || '分' ||
          NODE_CL_TIME - (floor(NODE_CL_TIME / 3600) * 3600) -
          (floor((NODE_CL_TIME - (floor(NODE_CL_TIME / 3600) * 3600)) / 60) * 60) || '秒'
         else
          '0'
       end into str 
  from DUAL;
end test;


这个存储过程接收一个参数,number类型的,然后返回一个varchar2类型的字符串。判断了三种情况,小于60秒,大于等于60并小于等于3600秒,大于3600秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值