Oracle INTERVAL DAY TO SECOND数据类型

INTERVAL DAY TO SECOND数据类型

Oracle语法: 
INTERVAL ‘{ integer | integer time_expr | time_expr }‘ 
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ] 
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] } 
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ]

leading_precision值的范围是0到9, 默认是2. time_expr的格式为:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n], n表示微秒. 
该类型与INTERVAL YEAR TO MONTH有很多相似的地方,建议先看INTERVAL YEAR TO MONTH再看该文.

范围值: 
HOUR:    0 to 23 
MINUTE: 0 to 59 
SECOND: 0 to 59.999999999

eg: 
INTERVAL ‘4 5:12:10.222‘ DAY TO SECOND(3) 
表示: 4天5小时12分10.222秒

INTERVAL ‘4 5:12‘ DAY TO MINUTE 
表示: 4天5小时12分

INTERVAL ‘400 5‘ DAY(3) TO HOUR 
表示: 400天5小时, 400为3为精度,所以"DAY(3)", 注意默认值为2.

INTERVAL ‘400‘ DAY(3) 
表示: 400天

INTERVAL ‘11:12:10.2222222‘ HOUR TO SECOND(7) 
表示: 11小时12分10.2222222秒

INTERVAL ‘11:20‘ HOUR TO MINUTE 
表示: 11小时20分

INTERVAL ‘10‘ HOUR 
表示: 10小时

INTERVAL ‘10:22‘ MINUTE TO SECOND 
表示: 10分22秒

INTERVAL ‘10‘ MINUTE 
表示: 10分

INTERVAL ‘4‘ DAY 
表示: 4天

INTERVAL ‘25‘ HOUR 
表示: 25小时

INTERVAL ‘40‘ MINUTE 
表示: 40分

INTERVAL ‘120‘ HOUR(3) 
表示: 120小时

INTERVAL ‘30.12345‘ SECOND(2,4)     
表示: 30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入.

INTERVAL ‘20‘ DAY - INTERVAL ‘240‘ HOUR = INTERVAL ‘10-0‘ DAY TO SECOND 
表示: 20天 - 240小时 = 10天0秒

================== 
该部分来源:http://www.oraclefans.cn/forum/showblog.jsp?rootid=140 
INTERVAL DAY TO SECOND类型存储两个TIMESTAMP之间的时间差异,用日期、小时、分钟、秒钟形式表示。该数据类型的内部代码是183,长度位11字节:

l         4个字节表示天数(增加0X80000000偏移量) 
l         小时、分钟、秒钟各用一个字节表示(增加60偏移量) 
l         4个字节表示秒钟的小时差异(增加0X80000000偏移量)

以下是一个例子:

SQL> alter table testTimeStamp add f interval day to second ;

表已更改。

SQL> update testTimeStamp set f=(select interval ‘5‘ day + interval ‘10‘ second from dual);

已更新3行。

SQL> commit;

提交完成。

SQL> select dump(f,16) from testTimeStamp;

DUMP(F,16)

--------------------------------------------------------------------------------

Typ=183 Len=11: 80,0,0,5,3c,3c,46,80,0,0,0 
Typ=183 Len=11: 80,0,0,5,3c,3c,46,80,0,0,0 
Typ=183 Len=11: 80,0,0,5,3c,3c,46,80,0,0,0

日期:0X80000005-0X80000000=5

小时:60-60=0 
分钟:60-60=0 
秒钟:70-60=10 
秒钟小数部分:0X80000000-0X80000000=0

《FROM:http://www.cnblogs.com/snake-hand/archive/2011/02/23/2452308.html》

时间: 2024-10-12 09:18:34

Oracle INTERVAL DAY TO SECOND数据类型的相关文章

oracle 和mysql之间的数据类型对比

编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型:MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时

Oracle INTERVAL

转自:http://www.cnblogs.com/ungshow/archive/2009/04/11/1433747.html INTERVAL DAY TO SECOND数据类型 Oracle语法:INTERVAL '{ integer | integer time_expr | time_expr }' { { DAY | HOUR | MINUTE } [ ( leading_precision ) ]| SECOND [ ( leading_precision [, fraction

DB字段顺序与类的属性顺序一致:{Oracle.DataAccess.Client.OracleException ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER

{Oracle.DataAccess.Client.OracleException ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER     应用程序中类型TD_LEARNCARD的属性顺序必须和Oracle字段顺序中一致.

INTERVAL YEAR TO MONTH数据类型

INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}] 该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2. eg:INTERVAL '123-2' YEAR(3) TO MONTH   表示: 123年2个月, "YEAR(3)" 表示年的精度为3, 可见"123"刚好为3为有效数值,

查看oracle表中列的数据类型

一. SQLPLUS中,直接用 DESC[ribe] tablename 即可. 二.在外部应用程序调用查看ORACLE中的表结构时,只能用下面的语句代替: 1.看字段名与数据类型 select * from cols WHERE TABLE_name=upper('table_name'); --(user_tab_columns缩写cols) 2.查看全部列 select * from user_tab_columns where table_name = upper(‘tablename’

Oracle 如何修改列的数据类型

http://www.cnblogs.com/david-zhang-index/archive/2012/04/10/2441015.html 对字段操作 操作方法 更新字段名 alter table TABLE_NAME rename column column_old to column_new; 添加字段 alter table TABLE_NAME add COLUMN_NAME varchar(10); 删除字段 alter table TABLE_NAME drop column

Oracle的Number对应C#数据类型

Number(9,0)及以下使用intNumber(10,0)到Number(19,0)使用longNumber(20,0)及以上使用decimal EntityFramework使用Number(20,0)及以上Number时需要手动配置精度:Property(x => x.Code).HasPrecision(20,0) 对于有小数位的:EntityFramework使用decimal然后手动配置精度Dapper直接使用decimal接收返回值 原文地址:https://www.cnblog

oracle数据类型及其隐式转换

oracle有三种最基本的数据类型,即字符型.数值型.日期型. oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下: 1)to_char     数值.日期->字符型     语法:to_char(num|date,[format mask],[nls_parameters])     参数:num|date 待转换的数值或者日期             format mask:可选参数 数字->字符型的可用格式 格式元素 元素说明 格式

oracle数据类型之number/char浅析

NUMBER: number:38位:number(p,s):p:精度,s:刻度(小数位数),在Oracle数据库中,number数据类型代表int,double,float等数字类型数据 举例: 1234.567 number(6,2) --------> 1234.57 0.001234 number(2,4) --------> 0.0012 number长度一般是0-22个字节,在Oracle中定义某列为number型,其列长度为22字节 CHAR/vVARCHAR/VARCHAR2: