千家信息网

TIMESTAMP和TIMESTAMP WITH TIME ZONE之间的总结

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,TIMEZONE指的是当地时间与本初子午线英格兰格林威治时间的时差北京是东八区(+08:00),即北京时间-格林威治=8小时,北京比格林威治早8小时看到太阳SELECT DBTIMEZONE,SESS
千家信息网最后更新 2025年01月20日TIMESTAMP和TIMESTAMP WITH TIME ZONE之间的总结TIMEZONE指的是当地时间与本初子午线英格兰格林威治时间的时差
北京是东八区(+08:00),即北京时间-格林威治=8小时,北京比格林威治早8小时看到太阳

SELECT DBTIMEZONE,SESSIONTIMEZONE,LOCALTIMESTAMP,CURRENT_TIMESTAMP,SYSTIMESTAMP FROM DUAL;
+00:00+08:002018/4/17 20:05:26.1929872018/4/17 20:05:26.192987 +08:002018/4/17 20:05:26.192983 +08:00
alter session set time_zone='+09:00';
SELECT DBTIMEZONE,SESSIONTIMEZONE,LOCALTIMESTAMP,CURRENT_TIMESTAMP,SYSTIMESTAMP FROM DUAL;
+00:00+09:002018/4/17 21:05:02.9377312018/4/17 21:05:02.937731 +09:002018/4/17 20:05:02.937726 +08:00

DBTIMEZONE:返回数据库时区.
DBTIMEZONE returns the value of the database time zone

SESSIONTIMEZONE:返回当前会话时区
SESSIONTIMEZONE returns the time zone of the current session

LOCALTIMESTAMP:返回session端不带时区的timestamp格式的当前时间
LOCALTIMESTAMP returns the current date and time in the session time zone in a value of data type TIMESTAMP

CURRENT_TIMESTAMP:返回session端带时区的timestamp格式的当前时间
CURRENT_TIMESTAMP returns the current date and time in the session time zone, in a value of data type TIMESTAMP WITH TIME ZONE.

SYSTIMESTAMP:返回带时区的timestamp格式的当前数据库时间
SYSTIMESTAMP returns the system date, including fractional seconds and time zone, of the system on which the database resides. The return type is TIMESTAMP WITH TIME ZONE.


alter session set time_zone='+08:00';
CREATE TABLE test1 (ID number(2),t_timezone timestamp with time zone,t_local_zone timestamp with local time zone);
insert into test1 values (2,systimestamp,systimestamp);
select * from test1;
22018/4/17 20:09:03.298221 +08:002018/4/17 20:09:03.298221
alter session set time_zone='+09:00';

select * from test1;
22018/4/17 20:09:03.298221 +08:002018/4/17 21:09:03.298221

总结:利用timestamp时间字段属性TIMESTAMP WITH TIME ZONE,可以把数据库服务器所在的时间转化为当前时区的时间,比如当伦敦时间为20180101 02:00:00,则在北京可以看到该时间为20180101 09:00:00。



TZ_OFFSET returns the time zone offset corresponding to the argument based on the date the statement is executed.
TZ_OFFSET根据输入的参数值,返回时区与0时区相差的小时和分钟数。
SELECT TZ_OFFSET('Asia/Shanghai'),TZ_OFFSET('US/Michigan'),TZ_OFFSET('Europe/London') FROM DUAL;
+08:00-04:00+01:00
select TZNAME from V$TIMEZONE_NAMES--查询所有的time_zone_name


FROM_TZ converts a timestamp value and a time zone to a TIMESTAMP WITH TIME ZONE value.
FROM_TZ将时间戳值和时区转换为具有时区值的时间戳。
SELECT FROM_TZ(TIMESTAMP'2018-04-30 08:00:00','Asia/Shanghai'),FROM_TZ(TIMESTAMP'2018-04-30 08:00:00','US/Michigan'),FROM_TZ(TIMESTAMP'2018-04-30 08:00:00','Europe/London') FROM DUAL;
2018/4/30 8:00:00.000000000 +08:002018/4/30 8:00:00.000000000 -04:002018/4/30 8:00:00.000000000 +01:00
SELECT FROM_TZ(LOCALTIMESTAMP,'Asia/Shanghai'),FROM_TZ(LOCALTIMESTAMP,'US/Michigan'),FROM_TZ(LOCALTIMESTAMP,'Europe/London') FROM DUAL;
2018/4/17 20:14:47.519347 +08:002018/4/17 20:14:47.519347 -04:002018/4/17 20:14:47.519347 +01:00
SELECT FROM_TZ(SYSTIMESTAMP,'Asia/Shanghai'),FROM_TZ(SYSTIMESTAMP,'US/Michigan'),FROM_TZ(SYSTIMESTAMP,'Europe/London') FROM DUAL;--因为SYSTIMESTAMP本身带有时区,所以报错ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 TIMESTAMP WITH TIME ZONE。
时间 时区 数据 北京 小时 数据库 格式 格林 格林威治 一致 参数 太阳 子午线 字段 属性 所在 时差 服务器 类型 伦敦 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全攻防实战心得体会 数据库怎么拷贝表格 城市管理领域网络安全自查 数据库哪些情况可以避免死锁 加密数据库修正配置后不管用 国内网络安全产品市场分析 郑州用什么交友软件开发 一对一直播pk软件开发 济南联想服务器总代 我们应该如何应对网络安全 计算机网络技术与应用三次握手 谷歌800万台服务器 新疆升鑫圣网络技术有限公司 剑灵1区哪个服务器人多 昭通服务器租用公司 中宁县软件开发技术靠谱吗 杭州黑酷网络技术有限公司 国家网络安全回答答案 天元网络安全手抄报 软件开发的成本构成 网络安全知识英文术语 天天乐棋牌软件开发是否安全 天津统一软件开发服务创意 安徽机架式服务器虚拟主机 网络安全进课堂主题班会 教师管理系统数据库实训 平板电脑可以做软件开发 网络技术的股价行情 mysql不能连接数据库原因 如何查看泛微服务器地址
0