A-A+

关于timestamp数据类型

2013年01月12日 BasicKnowledge 暂无评论 阅读 1,248 次

关于timestamp数据类型
很早就知道oracle有timestamp这种数据类型,不过没有怎么用过,也就没有深入了解了。
用的较多的就是date数据类型,当然此数据类型可以解决当前工作中很多和时间相关的问题,也可以使用oracle很多自带的日期函数。
今天开发那边的需求需要精度更高的时间列,于是就想到了oracle的timestamp数据类型。

timestamp数据类型说明
timestamp数据类型可以存储精度到秒小数后0-9位,默认为6位,也就是说此数据类型可以存储的精度是十几亿分之一秒的日期。当然此数据类型和date也一样存储年、月、日、时、分、秒。

以下为具体操作示例:

1、带时区的timestamp
SQL> create table yallonking_zone(id number,my_time timestamp(9) with time zone);

Table created.

SQL> insert into yallonking_zone values(1,sysdate);

1 row created.

SQL> insert into yallonking_zone values(2,systimestamp);

1 row created.

SQL> select * from yallonking_zone;

ID MY_TIME
-- ---------------------------------------------------------------------------
1 16-3月 -12 09.48.00.000000000 上午 +08:00
2 16-3月 -12 09.48.08.692798000 上午 +08:00

此处可见,timestamp数据类型显示的当前时间是比UTC(通用协调时间)迟8个小时。

2、不带时区的timestamp
SQL> create table yallonking(id number,my_time timestamp);

Table created.

SQL> insert into yallonking values(1,sysdate);

1 row created.

SQL> insert into yallonking values(2,systimestamp);

1 row created.

SQL> select * from yallonking;

ID MY_TIME
-- ---------------------------------------------------------------------------
1 16-3月 -12 09.47.12.000000 上午
2 16-3月 -12 09.47.21.559822 上午

此处可见,timestamp数据类型默认是秒之后6位小数。

3、timestamp与oracle日期函数相关
SQL> select to_char(add_months(last_day(max(least(my_time))),1),'yyyy/mm/dd hh24:mi:ss') as my_time_new from yallonking_zone;

MY_TIME_NEW
---------------------------------------------------------------------------
2012/04/30 09:48:08

由此可见,timestamp和常用的date类型一样,同样可以灵活使用oracle的日期函数。

标签:

给我留言

Copyright © YallonKing 保留所有权利.   Theme  Ality

用户登录

分享到: