Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字
不说废话,贴代码:
1 CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS 2 /*把秒转成时分秒格式 3 auth lzpong 201/09/16 4 */ 5 BEGIN 6 RETURN TRUNC(NVL(sec,0)/3600)||':'||SUBSTR(NUMTODSINTERVAL(NVL(sec,0), 'second'),15,5); 7 EXCEPTION WHEN OTHERS THEN RETURN '0:00:00'; 8 END to_time; 9 10 11 CREATE OR REPLACE FUNCTION isnumeric(str IN VARCHAR2) RETURN NUMBER IS 12 /*检测字符串是否是数字 null:-1; notnumeric:0; isnumeric:1 13 */ 14 v_str FLOAT; 15 BEGIN 16 IF str IS NULL THEN 17 RETURN -1; 18 ELSE 19 BEGIN 20 SELECT TO_NUMBER (str) INTO v_str FROM DUAL; 21 EXCEPTION 22 WHEN INVALID_NUMBER THEN 23 RETURN 0; 24 END; 25 RETURN 1; 26 END IF; 27 END isnumeric;
转换为数字:
如果要转换字母加数字的,得到数字, 那就得先用正则表达式过滤了: REGEXP_SUBSTR, REGEXP_REPLACE
1 CREATE OR REPLACE FUNCTION TO_NUM(str IN VARCHAR2) RETURN NUMBER IS 2 --将字符串转成数字 3 --lzpong 2015/09/16 4 BEGIN 5 IF(str IS NULL)THEN 6 RETURN 0; 7 ELSE 8 RETURN TO_NUMBER(str); 9 END IF; 10 EXCEPTION 11 WHEN OTHERS THEN 12 RETURN 0; 13 END;
CREATE OR REPLACE FUNCTION TO_NUM(str IN VARCHAR2) RETURN NUMBER IS str2 varchar2(160); --将字符串(提取数字)转成数字 --lzpong 2015/09/16 BEGIN str2:=REGEXP_SUBSTR(str,'[[:digit:]]{1,100}\.?[[:digit:]]{0,10}'); IF(str2 IS NULL)THEN RETURN 0; ELSE RETURN TO_NUMBER(str2); END IF; EXCEPTION WHEN OTHERS THEN RETURN 0; END;
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
原文链接:https://www.cnblogs.com/lzpong/p/4813983.html
--- auth:lzpong
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!