广告
返回顶部
首页 > 资讯 > 数据库 >Oracle如何修改时区
  • 924
分享到

Oracle如何修改时区

2024-04-02 19:04:59 924人浏览 八月长安
摘要

这篇文章主要为大家展示了“oracle如何修改时区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle如何修改时区”这篇文章吧。Oracle修改时区1.

这篇文章主要为大家展示了“oracle如何修改时区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle如何修改时区”这篇文章吧。

Oracle修改时区

1. 首先确认会话时区是否正确,会话时区可能和数据库时区不一致

sql> select sessiontimezone from dual;

SESSIONTIMEZONE

---------------------------------------------------------------------------

+08:00

会话时区是北京时区

SQL> select dbtimezone from dual;

DBTIME

------

+00:00

DB是世界时区

SQL> select tz_offset(sessiontimezone), tz_offset(dbtimezone) from dual;

TZ_OFFS TZ_OFFS

------- -------

+08:00  +00:00

2. 检查数据库是否有这样的字段类型 TIMESTAMP WITH LOCAL TIME ZONE  

SQL> select c.owner || '.' || c.table_name || '(' || c.column_name || ') -'

     || c.data_type || ' ' col

   from dba_tab_cols c, dba_objects o

  where c.data_type like '%WITH LOCAL TIME ZONE'

     and c.owner=o.owner

    and c.table_name = o.object_name

    and o.object_type = 'TABLE'

 order by col

 /

COL

--------------------------------------------------------------------------------

OE.ORDERS(ORDER_DATE) -TIMESTAMP(6) WITH LOCAL TIME ZONE

--查看时区依赖的表

SQL> select u.name || '.' || o.name || '.' || c.name TSLTZcolumn

   from sys.obj$ o, sys.col$ c, sys.user$ u

  where c.type# = 231

    and o.obj# = c.obj#

    and u.user# = o.owner#;

TSLTZCOLUMN

--------------------------------------------------------------------------------

OE.ORDERS.ORDER_DATE

3. 查看时区依赖表结构

SQL> desc oe.orders

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 ORDER_ID                                  NOT NULL NUMBER(12)

 ORDER_DATE                                NOT NULL TIMESTAMP(6) WITH LOCAL TIME

                                                     ZONE

 ORDER_MODE                                         VARCHAR2(8)

 CUSTOMER_ID                               NOT NULL NUMBER(6)

 ORDER_STATUS                                       NUMBER(2)

 ORDER_TOTAL                                        NUMBER(8,2)

 SALES_REP_ID                                       NUMBER(6)

 PROMOTION_ID                                       NUMBER(6)

4. 查看时区依赖表数据

SQL> select ORDER_DATE from oe.orders;

ORDER_DATE

---------------------------------------------------------------------------

21-MAR-04 08.18.21.862632 AM

09-JAN-06 12.19.44.123456 PM

09-JAN-06 01.34.13.112233 PM

27-JAN-06 01.22.51.962632 AM

02-FEB-06 05.34.56.345678 PM

03-FEB-06 12.19.11.227550 PM

28-FEB-06 09.03.03.828330 AM

30-MAR-06 02.22.09.509801 AM

30-MAR-06 05.34.50.545196 AM

28-JUL-06 02.22.59.662632 AM

28-JUL-06 03.34.16.562632 AM

..................................

28-JUN-08 11.53.32.335522 AM

15-JUL-08 08.18.23.234567 AM

27-JUL-08 10.59.10.223344 PM

02-AUG-08 01.22.48.734526 AM

105 rows selected.

5. 处理时区依赖表

(1) 创建临时表进行备份

SQL> create table oe.test1(order_id number,order_date date);

Table created.

SQL> insert into oe.test1(order_id,order_date) select order_id,order_date from oe.orders;

105 rows created.

SQL> commit;

Commit complete.

(2) 处理原表oe.orders中的列order_date

SQL> alter table oe.orders drop column order_date;

Table altered.

SQL> alter table oe.orders add order_date date;

Table altered.

SQL> update oe.orders a set order_date= (select order_date from oe.test1 b where a.order_id=b.order_id);

105 rows updated.

SQL> commit;

Commit complete.

(3) 再次查询是否还存在以上类型的列

SQL> select c.owner || '.' || c.table_name || '(' || c.column_name || ') -'

         || c.data_type || ' ' col

       from dba_tab_cols c, dba_objects o

      where c.data_type like '%WITH LOCAL TIME ZONE'

         and c.owner=o.owner

        and c.table_name = o.object_name

        and o.object_type = 'TABLE'

     order by col

     /

no rows selected

SQL> select u.name || '.' || o.name || '.' || c.name TSLTZcolumn

       from sys.obj$ o, sys.col$ c, sys.user$ u

      where c.type# = 231

        and o.obj# = c.obj#

        and u.user# = o.owner#;

no rows selected

6. 修改时区,但是查询还是未生效

SQL> alter database set time_zone='+8:00';

Database altered.

SQL> select dbtimezone from dual;

DBTIME

------

+00:00

7. 重启数据库,时区生效

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> 

SQL> startup

ORACLE instance started.

Total System Global Area  835104768 bytes

Fixed Size                  2257840 bytes

Variable Size             549456976 bytes

Database Buffers          281018368 bytes

Redo Buffers                2371584 bytes

Database mounted.

Database opened.

SQL> 

SQL> select dbtimezone from dual;

DBTIME

------

+08:00

SQL> select tz_offset(sessiontimezone), tz_offset(dbtimezone) from dual;

TZ_OFFS TZ_OFFS

------- -------

+08:00  +08:00

8. 删除临时表

SQL> drop table oe.test1 purge;

Table dropped.

另外:

对于全球化的业务而言,业务必须在多个时区之间正常运转。从9i版本开始,Oracle环境能够知道所使用时区。为了实现这个功能,需要指定数据库所运行的时区以及使用TIMESTAMP WITH TIME ZONE与TIMESTAMP WITH LOCAL TIME ZONE数据类型。前一种具有一个时区指示符,这个指示符说明了其引用的时区。后一种数据类型在存储时会被规范化为数据库时区,但随后在检索时会转换为客户端的时区。普通的DATE和TIMESTAMP数据类型在存储时始终会规范为数据库时区,并且会在查询过程原样显示。

 关于timestamp的几个函数:

 sysdate      数据库服务器操作系统时间,显示不含时区(其实隐含了时区)。

 systimestamp 数据库服务器操作系统时间以及时区

 注意:上述两个函数的返回值不会受到客户端影响。

 localtimestamp      根据客户端时区转换成客户端当前时间,但显示并不含时区

 current_timestamp   根据客户端时区转换成客户端当前时间,包含客户端时区

 注意:上述两个函数的返回值和客户端时区设置有关,会转换为客户端时区的时间。

以上是“Oracle如何修改时区”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle如何修改时区

本文链接: https://www.lsjlt.com/news/63822.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何修改oracle时区
    改Oracle的时区设置:alter database set time_zone='+8.00';修改之后,重新启动Oracle数据库。 ...
    99+
    2022-10-18
  • Oracle如何修改时区
    这篇文章主要为大家展示了“Oracle如何修改时区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle如何修改时区”这篇文章吧。Oracle修改时区1. ...
    99+
    2022-10-18
  • mysql如何修改时区
    这篇文章主要介绍“mysql如何修改时区”,在日常操作中,相信很多人在mysql如何修改时区问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何修改时区”的疑惑有所帮...
    99+
    2022-10-19
  • 如何修改mysql时区
    小编给大家分享一下如何修改mysql时区,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 修改mysq...
    99+
    2022-10-19
  • php 如何修改时区
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。php怎么修改时区?PHP时区设置,PHP时间问题在web项目中很多是以时间相关的,而且有些与时间的关系非常大!前段时间做了个天气预报15天查询(http://tqy...
    99+
    2022-11-24
    时区 php
  • 如何修改linux时区
    这篇“如何修改linux时区”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何修改linux时区”文章吧。方法:1、利用“s...
    99+
    2023-06-29
  • linux vps如何修改时区
    本篇内容主要讲解“linux vps如何修改时区”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux vps如何修改时区”吧!根据NTP网络对时Java代码代码如下:#date -R2012...
    99+
    2023-06-13
  • 修改postgresql时区
    修改postgresql时区 1. 输入指令【systemctl status postgresql-12.service】查询pgsql服务器当前运行状态。 2. 找到数据文件夹【/data/da...
    99+
    2023-10-26
    postgresql 数据库 mysql
  • oracle如何修改分区名称
    oracle修改分区名称使用“ALTER TABLE”语句,其语法为“ALTER TABLE table_name RENAME PARTITION partition_name TO new_partition_name;”,其中,“ta...
    99+
    2023-08-07
  • 如何在ubuntu下修改时区
    如何在ubuntu下修改时区的方法:1、打开终端;2、输入“timedatectl”命令检查当前是日期和时区设置;3、再输入“timedatectl list-timezones”命令获取时区列表;4、输入“timedatectl list...
    99+
    2022-10-10
  • 【Mysql】修改mysql时区
    首先需要查看mysql的当前时区,用time_zone参数 mysql> show global variables like '%zone%'; +-------...
    99+
    2022-10-18
  • Linux中如何修改系统时区
    Linux中如何修改系统时区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  Unix/Linux 的下载地址  1、查看系统时间  #date  可以看到时区...
    99+
    2023-06-13
  • mysql8.0 my.ini 如何永久修改时区
    目录my.ini 永久修改时区永久解决mysql时区问题方法一方法二方法三方法四my.ini 永久修改时区 1、打开 查看->隐藏的项目 2、进入 C:\ProgramData\MySQL\MySQL Server...
    99+
    2022-07-19
    mysql8.0 my.ini my.ini永久修改时区 my.ini修改时区
  • mysql如何查看和修改时区?
    方法1#查看时区 show variables like "%time_zone%"; set global time_zone = '+8:00'; ##修改mysql...
    99+
    2022-10-18
  • mysql的默认时区如何修改
    本篇文章为大家展示了mysql的默认时区如何修改,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、查看MySQL当前时区和时间show variables like...
    99+
    2022-10-18
  • php中如何修改默认时区
    php修改默认时区的方法:1、打开php配置文件并找到“date.timezone”关键词;2、将“date.timezone”前面的注释去掉;3、在“date.timezone”后面填写对应的时区标识符;4、重启php服务器即可。具体步骤...
    99+
    2022-10-23
  • RedHat 7如何修改Linux的时区
    RedHat 7如何修改Linux的时区,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。操作系统是:Red Hat Enterprise Linux Server release...
    99+
    2023-06-06
  • mysql8.0 my.ini 如何永久修改时区
    目录my.ini 永久修改时区永久解决MySQL时区问题方法一方法二方法三方法四my.ini 永久修改时区 1、打开 查看->隐藏的项目 2、进入 C:\ProgramData...
    99+
    2022-11-13
  • linux修改时区实战
    修改时区方法一: timedatectl set-timezone Asia/Shanghai >>>服务器时区设置 date -s “2020-12-20 16:34:50” >>>服务器时间设置 ...
    99+
    2023-09-09
    linux 服务器
  • 怎么修改postgresl时区
    修改postgresl时区的方法:1.进入postgresl安装目录;2.在目录中查找postgresql.conf文件;3.使用记事本打开文件;4.对文件进行修改;5.重启postgresl;具体步骤如下:首先,在计算机中进入postgr...
    99+
    2022-10-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作