TIMESTAMP既然包括了时区的概念,就会碰到将一个时区的时间转换到另一个数区的问题。
在时区转换之前,首先描述一下如何指定一个包含时区的TIMESTAMP,常用方法有以下几种:
SQL> SELECT SYSTIMESTAMP FROM DUAL; SYSTIMESTAMP ——————————————————————- 09-3月 -09 05.37.29.468000 下午 +08:00 SQL> SELECT SYSTIMESTAMP + INTERVAL ‘5’ HOUR FROM DUAL; SYSTIMESTAMP+INTERVAL’5’HOUR ——————————————————————- 09-3月 -09 10.38.02.000000000 下午 +08:00 |
对于服务器当前时区的时间,可以通过SYSTIMESTAMP加减INTERVAL的方式实现。
第二种方法使用TO_TIMESTAMP_TZ:
SQL> SELECT TO_TIMESTAMP_TZ(‘2009-3-9 17:51:23.23 -05:00’, 2 ‘YYYY-MM-DD HH24:MI:SS.FF TZH:TZM’) 3 FROM DUAL; TO_TIMESTAMP_TZ(‘2009-3-917:51:23.23-05:00’,’YYYY-MM-DDHH24:MI:SS.FFTZH:TZM ————————————————————————— 09-3月 -09 05.51.23.230000000 下午 -05:00 |
Oracle还提供一个FROM_TZ的函数,用来转换一个TIMESTAMP类型到TIMESTAMP WITH TIME ZONE类型:
SQL> SELECT FROM_TZ(CAST(SYSDATE AS TIMESTAMP), ‘-11:00’) 2 FROM DUAL; FROM_TZ(CAST(SYSDATEASTIMESTAMP),’-11:00′) ————————————————————– 09-3月 -09 05.44.18.000000 下午 -11:00 |
当然还可以通过TIMESTAMP加字符串的方式来直接指定一个包含时区的TIMESTAMP类型:
|
最后可以使用TIMESTAMP AT TIME ZONE的方式指定时区:
SQL> SELECT TIMESTAMP ‘2009-3-9 17:56:53.232323’ 2 AT TIME ZONE ‘GMT’ 3 FROM DUAL; TIMESTAMP’2009-3-917:56:53.232323’ATTIMEZONE’GMT’ —————————————————– 09-3月 -09 09.56.53.232323000 上午 GMT SQL> SELECT TO_CHAR( 2 TIMESTAMP ‘2009-3-9 17:56:53.232323’ 3 AT TIME ZONE ‘GMT’ 4 , ‘YYYY-MM-DD HH24:MI:SS.FF TZH:TZM’) 5 FROM DUAL; TO_CHAR(TIMESTAMP’2009-3-917:56:53.2 ———————————— 2009-03-09 09:56:53.232323000 +00:00 |
而Oracle的最后这种方式,不仅支持时区名称方式,而且支持时区的转换。比如希望将东4区时间转换为西3区的时间:
SQL> SELECT TIMESTAMP ‘2009-3-9 18:05:23.234 +04:00’ 2 AT TIME ZONE ‘-03:00’ 3 FROM DUAL; TIMESTAMP’2009-3-918:05:23.234+04:00’ATTIMEZONE’-03:00′ ——————————————————————— 09-3月 -09 11.05.23.234000000 上午 -03:00 SQL> SELECT FROM_TZ(CAST(SYSDATE AS TIMESTAMP), ‘Asia/Shanghai’) 2 AT TIME ZONE ‘GMT’ 3 FROM DUAL; FROM_TZ(CAST(SYSDATEASTIMESTAMP),’ASIA/SHANGHAI’)ATTIMEZONE’GMT’ ——————————————————————— |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。