[20170315]数据类型interval day to second.txt

--上午监测dg应用情况时,查询如下视图:

1.前提:
$ cat dg_status.sql
column name format a30;
column value format a30
column unit format a30
column time_computed format a30
select name,value,unit,to_char(to_date(time_computed,'mm/dd/yyyy hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') time_computed from v$dataguard_stats;

SYS@bookdg> @ &r/dg/dg_status.sql
NAME                           VALUE                          UNIT                           TIME_COMPUTED
------------------------------ ------------------------------ ------------------------------ ------------------------------
transport lag                  +00 00:00:00                   day(2) to second(0) interval   2017-03-15 14:45:44
apply lag                      +00 02:40:13                   day(2) to second(0) interval   2017-03-15 14:45:44
apply finish time              +00 00:00:04.201               day(2) to second(3) interval   2017-03-15 14:45:44
estimated startup time         7                              second                         2017-03-15 14:45:44

--//name='apply lag',values=+00 02:40:13,单位unit= day(2) to second(0) interval.
--//才知道oracle还有一种数据类型是interval day to second . 里面的数字表示精度.简单探究一下,我主要的目的是转换成秒.

2.测试:
SCOTT@book> @ &r/ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SCOTT@book> create table t ( a interval day to second);
Table created.

SCOTT@book> @ &r/desc t
           Name                            Null?    Type
           ------------------------------- -------- ----------------------------
    1      A                                        INTERVAL DAY(2) TO SECOND(6)
--//缺省不指定 天数精度是2,秒6.

SCOTT@book> insert into t values (TO_DSINTERVAL('+00 02:40:13')) ;
1 row created.

SCOTT@book> insert into t values (INTERVAL '4 5:12:10.222' DAY TO SECOND(3) ) ;
1 row created.

SCOTT@book> commit ;
Commit complete.

SCOTT@book> select * from t;
A
--------------------
+00 02:40:13.000000
+04 05:12:10.222000

--//简单探究转储:
SCOTT@book> select a c20,dump(a,16) c50 ,dump(a,10) c50 from t;
C20                  C50                                                C50
-------------------- -------------------------------------------------- --------------------------------------------------
+00 02:40:13.000000  Typ=183 Len=11: 80,0,0,0,3e,64,49,80,0,0,0         Typ=183 Len=11: 128,0,0,0,62,100,73,128,0,0,0
+04 05:12:10.222000  Typ=183 Len=11: 80,0,0,4,41,48,46,8d,3b,73,80      Typ=183 Len=11: 128,0,0,4,65,72,70,141,59,115,128

--//猜测一下0x80估计表示+, 中间3位表示天数,后面的时分秒 再减去60就对上.
--//小数点表示的nanoseconds,需要长度11.

SCOTT@book> @ &r/10to16  222000000
10 to 16 HEX   REVERSE16
-------------- ------------------
000000d3b7380 0x80733b0d

--//只不过前面的0d变成8d.

3.如何转换成秒呢?
--参考http://yangtingkun.net/?p=896的链接:

SELECT EXTRACT(DAY FROM a) * 86400
+ EXTRACT(HOUR FROM a) * 3600
+ EXTRACT(MINUTE FROM a) * 60
+ EXTRACT(SECOND FROM a) INTERVAL
FROM t;

INTERVAL
----------
      9613
364330.222

--//感觉有点麻烦!简单一点写成这样.

SCOTT@book> select (sysdate-(sysdate- a))*86400 ss from t;
        SS
----------
      9613
    364331
--//注一定要这样写,如果写成这样.

SCOTT@book> select (sysdate-sysdate + a))*86400 ss from t;
select (sysdate-sysdate + a))*86400 ss from t
                            *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

--//另外还有函数TO_DSINTERVAL转换成这种类型.

SYS@bookdg> select (sysdate-(sysdate- TO_DSINTERVAL(value)))*86400 ss,v$dataguard_stats.* from v$dataguard_stats where name ='apply lag';
        SS NAME                           VALUE                          UNIT                           TIME_COMPUTED                  DATUM_TIME
---------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
     12186 apply lag                      +00 03:23:06                   day(2) to second(0) interval   03/15/2017 15:28:36            03/15/2017 15:28:35

[20170315]数据类型interval day to second相关推荐

  1. date类型_Chapter 01. 常见数据类型概述 Overview of Common Data Types

    课程:DataCamp_Skill Track_SQL fundamentals[笔记] Chapter 01. 常见数据类型概述 Overview of Common Data Types 了解常见 ...

  2. lz0-007 读书笔记09

    Creating and Managing Tables 1.数据库对象 •Oracle数据库能够包含多种数据结构.  每一种结构应该在数据设计中描述,以使它能够在数据库开发阶段被创建 •常见的数据库 ...

  3. Blink SQL内置函数大全

    字符串函数 STR_TO_MAP 功能描述 使用listDelimiter将text分隔成K-V对,然后使用keyValueDelimiter分隔每个K-V对,组装成MAP返回.默认listDelim ...

  4. INTERVAL数据类型-007学习笔记

    http://baggio785.itpub.net/post/31233/286119 INTERVAL数据类型用来存储两个时间戳之间的时间间隔. 可以指定years and months,或者da ...

  5. Oracle INTERVAL DAY TO SECOND数据类型

    INTERVAL DAY TO SECOND数据类型 Oracle语法: INTERVAL '{ integer | integer time_expr | time_expr }' { { DAY ...

  6. Interval数据类型

    Notes: Interval后无法跟变量,如interval 变量 second(date,timestamp同样).计算操作用1/24/60/60实现. v_date:=date '2000-1- ...

  7. Oracle INTERVAL YEAR TO MONTH数据类型

    Oracle语法: INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}] 该数据类型常用来表示一 ...

  8. 数据处理中四种基本数据类型的区别(Nominal, ordinal, interval, ratio data)

    Nominal,Ordinal,Interval and Ratio分别是定类.定序.定距.定比,定类变量值只是分类,如性别变量的男女:定序变量值可以排序,但不能加减,如年级变量:定距变量值是数字型变 ...

  9. java实体属性对应mysql和SQL Server 和Oracle 数据类型对应

    1:Java数据类型与MySql数据类型对照表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 ...

最新文章

  1. java菱形乱码 编码_JAVA:编码与乱码问题
  2. 这是一篇优雅的Springboot2.0使用手册
  3. 打不死的小强机器人来了,向心加速度堪比猎豹,能抵抗自身数百倍重量碾压...
  4. 用java编写运行的小游戏_第一次用Java编写小游戏!
  5. ubuntu12.04中sublime输入中文
  6. java恶作剧小程序_一个Java恶搞小程序
  7. SAP web service开发工具SOAMANAGER里ping按钮的实现细节
  8. keil lic_LIC的完整形式是什么?
  9. struts中获取多选按钮html:checkbox的值
  10. 【PowerDesigner】PowerDesigner的下载及安装
  11. KrakenD网关V1.0.0文档初步翻译
  12. Codeforces Gym 101086 M ACPC Headquarters : AASTMT (Stairway to Heaven)
  13. 防止PayPal帐号冻结和解冻的经验
  14. nittest html报告,学业水平测评复习nit3-5.doc
  15. 卡特兰数——Catalan数
  16. 如何才能成为一个程序员
  17. 疫情错峰云计算冲锋,给Zoom带来了多少溢价?
  18. 计算用户输入的日期离1900年1月1日相距多少天
  19. 自己动手,丰衣足食------Rust实现自己的Stream
  20. 云速建站:10分钟出特效系列(二)

热门文章

  1. python 编程入门-python编程入门(第3版)
  2. python的pip安装-pip安装python库的方法总结
  3. python编程培训-什么是Python?老男孩Python编程培训
  4. python实现人像美颜
  5. LeetCode LRU Cache(最近最少使用缓存)
  6. UVa1450 Airport(二分法)
  7. AlertDialog的使用(二):分别创建
  8. 使用字符流 创建文件 写入文件 复制文件
  9. 数学问题——最大公约数与最小公倍数
  10. java try嵌套