Oracle日期与时间拼接函数以及时间处理函数

Oracle日期与时间拼接函数以及时间处理函数- -干货

1.时间处理函数

在工作过程中是否有遇到源数据的时间存储为Integer类型的时间格式,如下:

序号T_TIME_1
163272
255066
355975
431394
542465
656309
737965
830757
937018
1030092

通过下面的这个函数

CREATE  OR  REPLACE  FUNCTION DATE_SPLICING_SECEND (SECONDS  INTEGER)RETURN  VARCHAR2 AS
    V_SECONDS VARCHAR2(100):= SECONDS;    
BEGIN    
    IF (V_SECONDS < 24 * 3600)
    THEN
        RETURN  TO_CHAR(TO_DATE(MOD(V_SECONDS, 3600 * 24), 'sssss'), 'hh24":"mi":"ss');
    ELSE
        RETURN  TRUNC(SECONDS / 3600 / 24) || '天' ||
                TO_CHAR(TO_DATE(MOD(V_SECONDS, 3600 * 24), 'sssss'), 'hh24":"mi":"ss');
    END  IF;
END DATE_SPLICING_SECEND;

则可变为如下效果:

序号T_TIME_1TIME_1
16327217:34:32
25506615:17:46
35597515:32:55
43139408:43:14
54246511:47:45
65630915:38:29
73796510:32:45
83075708:32:37
93701810:16:58
103009208:21:32

2.日期与时间的拼接函数

拼接前:

序号T_DATET_TIME
12019/1/2807:49:06
22020/4/2115:01:16
32019/1/2409:25:53
42019/1/1108:59:59
52020/4/1607:15:28
62019/2/2415:54:26
72020/1/1514:50:20
82019/1/53:23:40
92020/2/1616:55:29
102019/1/108:29:53

拼接后:

序号T_DATET_TIMEDATE_TIME
12019/1/2807:49:062019/1/28 7:49:06
22020/4/2115:01:162020/4/21 15:01:16
32019/1/2409:25:532019/1/24 9:25:53
42019/1/1108:59:592019/1/11 8:59:59
52020/4/1607:15:282020/4/16 7:15:28
62019/2/2415:54:262019/2/24 15:54:26
72020/1/1514:50:202020/1/15 14:50:20
82019/1/53:23:402019/1/5 13:23:40
92020/2/1616:55:292020/2/16 16:55:29
102019/1/108:29:532019/1/10 8:29:53

实现函数:

CREATE OR REPLACE FUNCTION DATE_SPLICING(P_DATE DATE,
                                         P_TIME VARCHAR) RETURN DATE AS 
/* 声明两个变量存放日期和时间,返回值设置为DATE类型 */    
V_DATE DATE := P_DATE; --日期
    V_TIME VARCHAR2(10) := P_TIME; --时间
BEGIN
    IF V_DATE IS NOT NULL
    THEN
        RETURN TO_DATE(TO_CHAR(V_DATE, 'YYYY-MM-DD') || V_TIME, 'YYYY-MM-DD HH24:MI:SS');
    ELSE
        RETURN NULL;
    END IF;
END DATE_SPLICING;

–本文是发表的第一篇Blog,不适之处尽情谅解。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值