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;
阅读(7542) | 评论(0) | 转发(0) |