Oracle中TIMESTAMP的几种类型介绍与实例

 更新时间:2016年12月14日 09:35:42   投稿:daisy  
我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。这篇文章主要介绍了Oralce中TIMESTAMP的几种类型。有需要的朋友们可以参考借鉴。

TIMESTAMP的几种类型比较

TIMESTAMP

时间戳类型,与date的区别在于,date不能精确到毫秒,而timestamp可以精确到毫秒,毫秒的位数为0-9位,默认为6位。

SQL> select tp from timestamp_test;
TP
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE 与 TIMESTAMP的区别在于,前者输出显示携带存入该时间值的数据库时区,后者输出不携带时区。

SQL> select tp_tz from timestamp_test;
TP_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午 +08:00

TIMESTAMP WITH LOCAL TIME ZONE与TIMESTAMP的区别在于,前者的输出受时区影响,会跟着时区的变化而变化,而后者存入数据库后将不受时区影响。即前者以数据库本地时区保存数据,输出时将转换成客户端时区输出。

SQL> select tp_l_tz from timestamp_test;
TP_L_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午

实战演练

# 创建timestamp_test测试表
SQL> create table timestamp_test(dt date,tp timestamp(6),tp_tz timestamp(6) with time zone,tp_l_tz timestamp(6) with local time zone);
Table created
# 在测试表中添加数据
SQL> insert into timestamp_test values(sysdate,sysdate,sysdate,sysdate);
1 row inserted
SQL> commit;
Commit complete
# 查看数据库的时区和当前会话的时区
SQL> select dbtimezone,sessiontimezone from dual;
DBTIMEZONE SESSIONTIMEZONE
---------- ---------------------------------------------------------------------------
+00:00   +08:00
# 查看当前时间
SQL> select sysdate from dual;
SYSDATE
-----------
2016/3/1 9:
# 查看测试表的数据
SQL> select * from timestamp_test;
DT     TP                                        TP_TZ                                      TP_L_TZ
----------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2016/3/1 9: 01-3月 -16 09.22.33.000000 上午                         01-3月 -16 09.22.33.000000 上午 +08:00                      01-3月 -16 09.22.33.000000 上午
# 修改当前会话的时区
SQL> alter session set time_zone='+10:00';
Session altered
# 查看当前会话时区修改后的测试表的数据
SQL> select dbtimezone,sessiontimezone from dual;
DBTIMEZONE SESSIONTIMEZONE
---------- ---------------------------------------------------------------------------
+00:00   +10:00
SQL> select * from timestamp_test;
DT     TP                                        TP_TZ                                      TP_L_TZ
----------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2016/3/1 9: 01-3月 -16 09.22.33.000000 上午                         01-3月 -16 09.22.33.000000 上午 +08:00                      01-3月 -16 11.22.33.000000 上午
Oracle的备份与恢复

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • 使用PLSQL远程连接Oracle数据库的方法(内网穿透)

    使用PLSQL远程连接Oracle数据库的方法(内网穿透)

    Oracle数据库来源于知名大厂甲骨文公司,是一款通用数据库系统,能提供完整的数据管理功能,而Oracle数据库时关系数据库的典型代表,其数据关系设计完备,这篇文章主要介绍了使用PLSQL远程连接Oracle数据库的方法(内网穿透),需要的朋友可以参考下
    2023-03-03
  • Oracle数据库中文显示???????解决办法

    Oracle数据库中文显示???????解决办法

    这两天刚刚使用Oracle,出现了好多不愉快的事情,下面分享一下我的一点经历,这篇文章主要给大家介绍了关于Oracle数据库中文显示???????的解决办法,需要的朋友可以参考下
    2024-04-04
  • Oracle数据库密码文件的使用与维护

    Oracle数据库密码文件的使用与维护

    Oracle数据库密码文件的使用与维护...
    2007-03-03
  • Oracle 中 row_number()、rank()、dense_rank() 函数的用法详解

    Oracle 中 row_number()、rank()、dense_rank() 函数的

    rank() 与 row_number() 的区别在于,rank() 会按照排序值相同的为一个序号(以下称为:块),第二个不同排序值将显示所有行的递增值,而不是当前序号加1,下面通过示例介绍下Oracle 中 row_number()、rank()、dense_rank() 函数的用法,一起看看吧
    2024-03-03
  • OB Oracle系统视图权限导致的故障解决案例

    OB Oracle系统视图权限导致的故障解决案例

    在 Oracle 和 OB Oracle 租户下调用存储过程时,两者表现并不一致,导致获取到的 SQL 文本拼接不完整,影响到了业务侧的功能测试,本文将针对这个问题进行相关的测试和验证
    2023-10-10
  • Oracle数据泵(expdp)导入导出数据的详细步骤

    Oracle数据泵(expdp)导入导出数据的详细步骤

    这篇文章主要介绍了Oracle数据泵(expdp)导入导出数据的详细步骤,文中详细描述了源数据库操作中的数据备份和目标数据库操作中的数据恢复过程,需要的朋友可以参考下
    2024-12-12
  • Oracle 给rac创建单实例dg并做主从切换功能

    Oracle 给rac创建单实例dg并做主从切换功能

    这篇文章主要介绍了Oracle 给rac创建单实例dg并做主从切换功能,通过实例代码给大家介绍rac搭建过程,需要的朋友可以参考下
    2019-12-12
  • 设置oralce自动内存管理执行步骤

    设置oralce自动内存管理执行步骤

    设置内存管理首先要启用oracle自动内存管理需要shutdown ,restart,接下来为大家介绍下详细的执行步骤,感兴趣的朋友可以参考下哈
    2013-04-04
  • Oracle SQL性能优化系列学习三

    Oracle SQL性能优化系列学习三

    Oracle SQL性能优化系列学习三...
    2007-03-03
  • 一文详解Oracle中RAC的用法

    一文详解Oracle中RAC的用法

    Oracle RAC(Oracle Real Application Server, Cluster)是一种分布式数据库解决方案,本文就将详细给大家介绍一下Oracle RAC的知识点及用法,感兴趣的同学可以参考阅读
    2023-06-06

最新评论