秒轉為時分秒的oracle函式

2021-07-13 09:42:33 字數 1835 閱讀 4226

create or replace function gettimedesc(seconds in integer) return  varchar2 is

result varchar2(100);

begin

result := '1t';

if (seconds<24*3600) then

select to_char(to_date(mod(seconds,3600*24),'sssss'),'fmhh24"小時"mi"分"ss"秒"') into result from dual;

else

select trunc(seconds/3600/24) || '天' || to_char(to_date(mod(seconds,3600*24),'sssss'),'fmhh24"小時"mi"分"ss"秒"') into result from dual;

end if;

return(result);

end gettimedesc;

這個函式沒有太多的技術含量,記錄下來。網上找了好久,後來也是看乙個答案,稍加改造而來

呼叫sql語句 select  gettimedesc(500000) m from dual; 

好像又回去了,寫來寫去,感覺很簡單,但是網上就沒有這個現成的答案,簡單是事情我來做。

除錯了好久,發現上面的寫法是有問題的,換個寫法,搞了好久,實在是不成了,只好整個笨辦法,麻煩點,但肯定是對的。

create or replace function gettimedesc(seconds in number) return  varchar2 is

result varchar2(100);

--dayseconds number;

tempsconds number;

begin

result := '';

--dayseconds := 24*3600;

tempsconds := seconds;

if (seconds is null) then

return '';

end if;

--天數

if (seconds>=86400) then

result := round(seconds/86400) || '天';

tempsconds := mod(seconds,86400);

else

result := '0天';

end if;

--小時

if (tempsconds>=3600) then

result := result || round(tempsconds/3600) || '小時';

tempsconds := mod(tempsconds,3600);

else

result := result || '0小時';

end if;

--分鐘

if (tempsconds>=60) then

result := result || round(tempsconds/60) || '分鐘';

tempsconds := mod(tempsconds,60);

else

result := result || '0分鐘';

end if;

result := result || to_char(round(tempsconds)) || '秒';

return(result);

end gettimedesc;

對自己來說是個記錄,希望對需要的人能或多或少地幫助一點點

SQL時分秒轉為秒

declare sql varchar 20 set sql 37 02 10 test select substring sql,0,charindex left sql,3 select cast substring sql,0,charindex left sql,3 as int 3600 ...

php 時分秒轉為秒,秒轉化為天時分秒

一 分秒轉為秒 獲取時分秒,轉化成秒 8小時5分5秒 function turnsecond str elseelse num hour 3600 minute 60 second return num 二 秒轉化為天時分秒 轉化時間為 天時分秒 function timesecond second...

js 多少秒轉化為時分秒之前

有些sdk只會告訴你多少秒之前,做了什麼事,我這邊是因為直播雲的直播記錄,給的就是這個秒數,看了很多記錄才發現,這個最簡單,在月份這個表示,會有些不妥,但是不大影響,借鑑了別人的 但是忘記是誰的,沒找到,若有侵權,請通知我一下,我進行補充 function reloadpubdate s var m...