MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 数据库 / 正文

Oracle技巧之将数字转换为时分秒,函数

2024-11-26 20:57 huorong 数据库 7 ℃ 0 评论

目的:在查询或者关联开发过程中,需要将数字转化成时分秒。下面将介绍查询的方式以及编写函数的方式,

一、查询

1.第一种情况是在24小时内的转化,也就是:86400>数字>=0

select to_char(to_date('30682','sssss'),'hh24:mi:ss') from dual


如果想要显示中文的时分秒,就做写如下查询语句

select trunc(30682/3600) || '小时' || to_char(to_date(mod(30682,3600),'sssss'),'fmmi"分"ss"秒"') from dual


2.第二种情况是大于24小时的转化,也就是:数字>=86400,这里就展示中文的转化写法

select trunc(3601*24/3600/24) || '天' || to_char(to_date(mod(3601*24,3600*24),'sssss'),'fmhh24"小时"mi"分"ss"秒"') from dual


上面就是两种数字范围的转化,是不是觉得繁琐,不太通用,那就需要用到函数了。


二、函数

函数的话,写好直接调用就行,这里就展示下语句和调用方式,如下所示:

CREATE OR REPLACE function ceshi1(nu1 in integer)
return varchar2 is
nu2 varchar2(200);
begin
if nu1<86400 then
select to_char(to_date(nu1,'sssss'),'fmhh24"小时"mi"分"ss"秒"') into nu2 from dual;
else
select trunc(nu1/86400)||'天'||to_char(to_date(mod(nu1,86400),'sssss'),'fmhh24"小时"mi"分"ss"秒"') into nu2 from dual;
end if;
return nu2;
end ceshi1;

调用方法就如下2张图所示:



好了,今天的Oracle将数字转化为中文时分秒的方法也就结束了。

Tags:oracle if select

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言