oracle 日期与 UTC 转换 _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1677 | 回复: 0   主题: oracle 日期与 UTC 转换         下一篇 
John
注册用户
等级:大元帅
经验:90444
发帖:136
精华:2
注册:2011-7-21
状态:离线
发送短消息息给John 加好友    发送短消息息给John 发消息
发表于: IP:您无权察看 2015-8-7 15:00:11 | [全部帖] [楼主帖] 楼主

日期转UTC

select (to_date('2013-04-09 14:02:15','yyyy-mm-dd hh24:mi:ss') - to_date('1970-01-01','yyyy-mm-dd'))*86400   from dual;

UTC转日期  

 select  to_char(to_date(19700101,'yyyymmdd') + 1365516134.9/86400,'yyyymmddhh24miss') from dual;

时区查询:

SELECT SESSIONTIMEZONE FROM DUAL;

select TZ_OFFSET(sessiontimezone) from dual;

带时区的转换:

 select TO_TIMESTAMP('19700101','yyyymmdd') + 1235728935/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual;

select (to_date('2009-2-27 18:02:15','yyyy-mm-dd hh24:mi:ss') - to_date('1970-1-1','yyyy-mm-dd'))*86400- TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600 from dual

转换过程中,遇到时区问题,检查数据库,

select TZ_OFFSET(sessiontimezone) from dual;

所以直接在计算公式中加了8小时:

select  to_date(19700101,'yyyymmdd') + (1106796974.717+8*60*60)/86400  from dual

--转自北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论