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