您的位置:首页 > 数据库 > Oracle

oracle 数据库中的 TIMESTAMP 类型

2014-01-30 12:26 411 查看
今天学习工作流的时候,发现工作流中居然定义了个TIMESTAMP 类型的字段,还不是很清楚这个的具体使用方法,现在转载一下别人的说明,自己也学习一下:

TIMESTAMP数据类型:

Oracle定义语法:

TIMESTAMP [(fractional_seconds_precision)]

fractional_seconds_precision 的范围为0到9, 默认为6. 与DATE类型相比该类型可以保存到微秒. 而且微秒的精确范围可以保存到0到9为数据. 在数据库中保存占7到11字节, 具体看你定义的fractional seconds的精度. 下面例子说明:

-- 建表包含timestamp类型.

SQL> create table tm(a timestamp);

Table created.

-- 注意这地方的FF中的'123456789', 这就是我刚说的微秒的精确范围, 上面定义的时候没有指定, 这就是使用默认的6了, 在下面"desc tm"处就可以看到的.

SQL> insert into tm values(TO_TIMESTAMP('2006-12-01 12:12:09.123456789', 'YYYY-MM-DD HH24:MI:SS.FF'));

1 row created.

-- 从这地方就可以看出来默认是6了. 要是你想使用更高的精确度就可以自己人为的指定了. create table tm(a timestamp(9)); 这样就可以的.

SQL> desc tm;

Name Null? Type

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

A TIMESTAMP(6)

--从这就可以看出来吧, 精确度为6时候,在插入数据时就使用了四舍五入了.

SQL> select * from tm;

A

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

01-DEC-06 12.12.09.123457 PM

-- 如果我想插入的数据超过了最大的9位时就会出错了的.

SQL> insert into tm values(TO_TIMESTAMP('2006-12-01 12:23:09.1234567890', 'YYYY-MM-DD HH24:MI:SS.FF'));

insert into tm values(TO_TIMESTAMP('2006-12-01 12:23:09.1234567890', 'YYYY-MM-DD HH24:MI:SS.FF'))

*

ERROR at line 1:

ORA-01830: date format picture ends before converting entire input string

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

查看当前的timestamp时间是CURRENT_TIMESTAMP

select current_timestamp from dual;

转自 http://blog.sina.com.cn/s/blog_4b68e80501000aal.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: