关于systimestamp和current_timestamp

[复制链接]
查看11 | 回复3 | 2010-2-1 01:01:07 | 显示全部楼层 |阅读模式
突然遇到一个问题
select to_char(sysdate,'YYYYMMDD HH24:MI:SS') "sysdate",SYSTIMESTAMP,
to_char(current_date,'YYYYMMDD HH24:MI:SS')"currentdate",current_timestamp,
DBTIMEZONE,SESSIONTIMEZONE from dual;

显示:
sysdate20100316 23:14:45
SYSTIMESTAMP16-3月-10 23.14.45.810648 下午 -04:00
currentdate20100317 11:14:46
CURRENT_TIMESTAMP17-3月-10 11.14.45.810715 上午 +8:00
DBTIMEZONE+08:00
SESSIONTIMEZONE+08:00

既然dbtimezone和session timezone是一样的为什么
systimestamp和current_timestamp不一样?
对了这里海有个前提,对方是用plsql dev去查询的
这个查询窗口应该也开了很久了
我重新login或者重新开窗口出来的值就是全正确了
显示:
sysdate20100316 11:14:45
SYSTIMESTAMP16-3月-10 11.14.45.810685 上午 +8:00
currentdate20100317 11:14:46
CURRENT_TIMESTAMP17-3月-10 11.14.45.810715 上午 +8:00
DBTIMEZONE+08:00
SESSIONTIMEZONE+08:00

我在server上查出来也都是正确的
和重新打开的窗口里显示的值一样

有人遇到过么?
[ 本帖最后由 oo0yuki0oo 于 2010-3-17 16:40 编辑 ]
回复

使用道具 举报

千问 | 2010-2-1 01:01:07 | 显示全部楼层
另外,我在server上查alert日志没有查到FIXED_DATE的值
难道是plsql dev有cash?这个窗口读的是cash的值?
回复

使用道具 举报

千问 | 2010-2-1 01:01:07 | 显示全部楼层
sysdate20100316 23:14:45
SYSTIMESTAMP16-3月-10 23.14.45.810648 下午 -04:00 -- server 时区为-4:00
currentdate20100317 11:14:46-- session时区为08:00, 所以此时间加上12:00 ,为sysdate
CURRENT_TIMESTAMP17-3月-10 11.14.45.810715 上午 +8:00
DBTIMEZONE+08:00
SESSIONTIMEZONE+08:00
[ 本帖最后由 qiaoruzhi78 于 2010-3-18 18:11 编辑 ]
回复

使用道具 举报

千问 | 2010-2-1 01:01:07 | 显示全部楼层
sysdate20100316 11:14:45
SYSTIMESTAMP16-3月-10 11.14.45.810685 上午 +8:00
currentdate20100317 11:14:46
CURRENT_TIMESTAMP17-3月-10 11.14.45.810715 上午 +8:00
DBTIMEZONE+08:00
SESSIONTIMEZONE+08:00
这个好像不太好解释,看信息,应该是server时区和session时区一样,所以应该currentdate = sysdate 才对呀。
有谁能解释下吗?
[ 本帖最后由 qiaoruzhi78 于 2010-3-18 18:09 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行