oracle:时区

时区:时区是当地时间与英格兰格林威治时间的时差。

一:与时区有关的函数:
1.CURRENT_DATE:返回在为数据库会话设置的本地时区中的当前时间。

select CURRENT_DATE from dual;

CURRENT_DATE
-----------------
2017/11/6 9:08:57

2.DBTIMEZONE 返回数据库的时区

select DBTIMEZONE from dual;

DBTIMEZONE
-----------------
+08:00

3.NEW_TIME(x, time_zone, time_zone2):将x从time_zone转换为time_zone2,并返回新的时间值

4.SESSIONTIMEZONE:返回数据库会话的时区

select SESSIONTIMEZONE from dual;

SESSIONTIMEZONE
-----------------
+08:00

5.TZ_OFFSET:以小时和分钟的形式返回time_zone时差
获取PST时区的时差,结果是UTC之后8小时。

select TZ_OFFSET('PST') from dual;

TZ_OFFSET('PST')
-----------------
-08:00

注意:在使用windows系统时,如果是夏天,应该为-7:00,因为windows系统会自动将时钟调整到夏令时。
6.查询所有的时区名:

select tzname, tzabbrev
from v$timezone_names
order by tzabbrev;
--------------------
Africa/Accra GHST
Africa/Accra GMT
.....

二:数据库时区与会话时区
1.数据库时区
数据库的时区称为数据库时区datebase time zone
数据库时区由TIME_ZONE控制,DBA可以在数据库的init.ora或spfile.ora文件中进行修改TIME_ZONE参数的设置,
也可以使用以下命令来进行修改:

ALTER DATABASE SET TIME_ZONE = offset | region
例如:
ALTER DATABASE SET TIME_ZONE = '-8:00';

将本地时区改为太平洋标准时间:

ALTER DATABASE SET TIME_ZONE = 'PST';

将本地时区改为运行alter session语句的计算机操作系统所用的时区:

ALTER DATABASE SET TIME_ZONE = 'LOCAL';

将本地时区改为数据库所用时区:

ALTER DATABASE SET TIME_ZONE = 'DBTIMEZONE';

2.会话时区
数据库会话的时区设置称为会话时区session time zone
默认会话时区与操作系统时区相同
修改方式:

ALTER SESSION SET TIME_ZONE = 'EST';

查询会话时区:

select SESSIONTIMEZONE from dual;

SESSIONTIMEZONE
-----------------
+08:00
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值