记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。


Oracle 利用函数将时间戳转换成日期格式的方法。

数据库中有三个字段,其中关于 时间的是采用 时间戳的格式存储的,

如下图


SIM BILL_NUM STARTTIME
18307135480 9001445665 1598016414
18707204757 9001445665 1598016417
15207169407 9003664475 1598251705
18827672101 9003664475 1598251707
13437294319 99270014770 1598343236
13554194307 99270014770 1598343237
13437294316 99270014770 1598343238
13554194616 99270014770 1598343238

  


如果要查询一段时间内的数据,每次都要转换时间格式,很不方面。

但是可以作了 时间戳转换日期的函数,这样每次只需要调用就可以了。


/* 格式化对象 2020/9/2 16:47:52 (QP5 v5.287) */
CREATE OR REPLACE FUNCTION FUN_UTC2DATE (UTCDATE NUMBER, PATTERN VARCHAR2)
   RETURN DATE
IS
   Result   DATE;
BEGIN
   Result :=
      TO_DATE (
         TO_CHAR (
              TO_DATE (19700101000000, 'YYYYMMDDHH24MISS')
            + (UTCDATE + 8 * 3600) / 86400,
            PATTERN),
         PATTERN);
   RETURN (Result);
END FUN_UTC2DATE;
/


此函数可以将时间戳转换成日期, 需要输入两个参数,UTCDATE与PATTERN ,

UTCDATE就是时间戳,不过要使用number格式,如果不是还要转换格式。

PATTERN 就是找要转换的日期格式,比如  yyyy-mm-dd hh24:mi:ss 或是其它格式。


下面是简单的查询使用方法,当然也可以使用别的方式调用函数。


/* 格式化对象 2020/9/2 17:24:36 (QP5 v5.287) */
  SELECT t.sim,
         t.bill_num,
         fun_utc2date (UTCDATE   => t.starttime,
                       PATTERN   => 'YYYY-MM-DD HH24:MI:SS')
            AS starttime
    FROM (SELECT *
            FROM te_equip e
           WHERE e.starttime > 1596988800) t
ORDER BY t.starttime DESC;




转载请标明出处【Oracle使用函数将时间戳转换成日期格式的方法。】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论