ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于timestamp数据类型

关于timestamp数据类型

原创 Linux操作系统 作者:YallonKing 时间:2012-03-16 11:42:52 0 删除 编辑
关于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的日期函数。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26143577/viewspace-718732/,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle参数整理
请登录后发表评论 登录
全部评论

注册时间:2011-08-07

  • 博文量
    72
  • 访问量
    246314