189 8069 5689

怎么改Oracle的时区,oracle时间修改

oracle修改会话时区后,重启数据库后时区又变成原来的了

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

为海南等地区用户提供了全套网页设计制作服务,及海南网站建设行业解决方案。主营业务为网站设计制作、成都做网站、海南网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

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

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

SQLselect 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

/

SQLselect 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#;

2.检查当前数据库时区

SQL select * from database_properties where property_name='DBTIMEZONE';

行将被截断

PROPERTY_NAME PROPERTY_VALUE

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

DBTIMEZONE 00:00

3.改变数据库时区

SQL ALTER DATABASE SET TIME_ZONE = '+8:00';

数据库已更改。

SQL shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL startup

ORACLE 例程已经启动。

Total System Global Area 272629760 bytes

Fixed Size 1248528 bytes

Variable Size 92275440 bytes

Database Buffers 171966464 bytes

Redo Buffers 7139328 bytes

数据库装载完毕。

数据库已经打开。

SQL select dbtimezone from dual;

DBTIME

------

+08:00

4.检查时间

SQL select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual

SQL SELECT SYSTIMESTAMP FROM dual;

SYSTIMESTAMP

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

23-7月 -09 11.50.25.750000 上午 +08:00

怎样在Oracle 9i中正确的转换时区

对于大多数数据库,这些值都是-07:00之类的偏移值

因此对于NEW_TIME函数是没有用的。Oracle9i有关NEW_TIME的文档建议使用FROM_TZ来替代,但是这可能会产生误导。FROM_TZ只将一个时区应用到一个时间戳上;它并不能把一个时区转换成另外一个时区。

如何修改oracle数据库时间

oracle的服务器时间,是由服务器的系统时间控制的,所以要看服务器的具体类型,以windows 10和linux系统为例分别说明。

工具:windows 10、linux

windows 10操作步骤:

1、右键开始菜单,选择控制面板。

2、找到日期和时间,点击进入。

3、点击更改日期和时间。

4、进入后,修改日期时间,保存即可。

linux下更改方法:

1、以root用户登录到指定服务器。

2、执行命令

date -s '2017-07-11 23:58:00'

这是将系统时间修改为2017年7月11日23点58分00秒。

3、修改后,reboot重启系统即可。

如何设置oracle时间戳类型的时区

时间戳的概念:它是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

下图是从linux系统中获得当前时间戳的一种方式

在oracle使用时间戳,一般都是为了方便计算时间差的,我们要知道oracle中的date类型想减是不能友好的得到时间的差值的。所以使用时间戳来得到两个时间差。

首先来看oracle中如何获得当前时间的时间戳,我们用当前时间减去计算机元年后再经过换算得到了的从1970年来到当前时间的时间戳,单位是微妙。

另外oracle提供了另一种便捷得到两个时间差的方式,那就是使用timestamp数据类型,它类似date类型,但是存储的时间更为精确,显示的格式:yyyy-mm-dd hh24:mi:ss.ff AM,其中ff是小数秒。

timestamp类型的时间差可读性也比上面那种好一些,可以直观看出两个时间差。

在oracle中,两个date类型的数值想减也可以转换成上述的timestamp可以的类型,这里就要介绍一个函数:numtodsinterval(n,'x'),它能将一个数值转换成timestamp那种格式的数据。但要注意:后面的参数'x'是取'day'、'minute'、'hour'完全取决于前面的单位,这样才能获得正确的时间差

最后我们介绍一个函数extract,该函数可以从timestamp类型的时间里抽取想要hour,minute等

如何更新rds oracle 时区

您可以通过修改AWS参数组的参数:time_zone修改MySQL的时区。关于如何修改亚马逊AWS参数:AWS参数是动态的,所以修改后立即生效。

对于已经建立的连接,不生效;对于新建立的连接才生效。

如果您创建了只读副本,您可以为主库和读从库设置不同的时区。

如果是从快照恢复数据库,时区将会被设置成UTC

如果是恢复到时间点,时区将会保持和原库一致

oracle 11g RAC 修改时区步骤,要注意什么

看MOS文档 How To Change Timezone for 11gR2 Grid Infrastructure (文档 ID 1209444.1)

AIX改时区必须重启。

我是全部节点停止, stop crs,然后 disable crs 让crs不自动启动 , 然后改AIX的时区,重启,时区生效,改grid时区,然后start crs 。

要改$GRID_HOME/crs/install/s_crsconfig_nodename_env.txt。

改时区没有什么大问题,数据库本身并不依赖时区,建议看看 Timestamps time zones - Frequently Asked Questions (文档 ID 340512.1)

吐槽一下,经常有人安装AIX的时候不注意选时区选择到 BST(Bering) 以为是BEIST(Beijing)。


本文题目:怎么改Oracle的时区,oracle时间修改
转载注明:http://cdxtjz.cn/article/hdgice.html

其他资讯