在2台机器上导入DBDUMP会产生差异时间戳

时间:2016-02-09 10:27:04

标签: oracle11g timezone

我在2台机器上导入了相同的dbdump。当我执行一个sql时,我看到了两个不同的值。

select struct_doc_id, START_DATE, END_DATE from structured_doc where struct_doc_id = 1329 order by START_DATE;

Machine1:

1329    31-03-11 09:00:00.000000000 PM  01-01-16 08:59:59.999000000 PM
1329    01-04-11 12:00:00.000000000 AM  31-12-15 11:59:59.999000000 PM

机器2:

1329    01-04-11 12:00:00.000000000 AM  31-12-15 11:59:59.999000000 PM
1329    01-04-11 12:00:00.000000000 AM  31-12-15 11:59:59.999000000 PM

另外,我执行了sql:

select dbtimezone, sessiontimezone, systimestamp, current_timestamp 
from dual;

并且两台机器上的结果都是:

机器1:

-07:00  Asia/Calcutta   09-02-16 02:15:55.422190000 AM -08:00   09-02-16 03:45:55.422204000 PM ASIA/CALCUTTA

机器2:

-07:00  Asia/Calcutta   09-02-16 05:23:20.703408000 AM -05:00   09-02-16 03:53:20.703418000 PM ASIA/CALCUTTA

注意:我在2台不同的计算机上运行了2个数据库。

任何人都可以告诉我在运行第一个sql时值的差异可能是什么原因?

1 个答案:

答案 0 :(得分:0)

我可以看到它可能是一个原因:  检查列 structured_doc 的数据类型是这样的: “timestamp”或“带有本地时区的时间戳”,“带时区的时间戳”。

Oracle将根据客户端的会话属性自动调整提供的日期。 我猜你是在一个数据库中远程执行导入,而在另一个数据库中本地执行导入。

最好的问候