2015-02-11 64 views
1

我曾在Oracle 11g中是插入一条记录表如下存储过程:间歇甲骨文SYSDATE插入为UTC时间

INSERT INTO X_ZAV_XML_RESULTS COLUMNS 
    (BACKGRND_SVR, RECORD_IN_DATE, 
    SITE_ACCESSION_KEY, XML_MESAGE_CONTENT, RECORD_OUT_DATE) VALUES 
    (vClientName, SYSDATE, vTestNumber, XMLResults, SYSDATE); 

间歇,我们已经注意到,在一些记载,RECORD_OUT_DATE设为UTC时间。此过程在多台服务器上运行,并且我们在所有服务器上都看到了问题。我可能会错过什么?

对不起,这是我在这个问题上的所有信息。我对服务器上可能导致此问题的设置不是很熟悉。

任何见解将不胜感激!

+0

请显示数据示例。 SYSDATE是服务器操作系统上的时间。你如何查询结果以确定是否存在问题? – OldProgrammer 2015-02-11 22:19:04

回答

0

也许铸造你的日期到特定的时区解决你的问题。试试像这样(检查我使用的是GMT,但可以使用另一种):

INSERT INTO X_ZAV_XML_RESULTS COLUMNS 
    (BACKGRND_SVR, RECORD_IN_DATE, 
    SITE_ACCESSION_KEY, XML_MESAGE_CONTENT, RECORD_OUT_DATE) VALUES 
    (vClientName, cast(sysdate as timestamp) at time zone 'GMT', 
    vTestNumber, XMLResults, cast(sysdate as timestamp) at time zone 'GMT');