加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

通过R中的ROracle从Oracle查询中获取正确的日期时间

发布时间:2021-03-05 11:59:48 所属栏目:站长百科 来源:网络整理
导读:我在R中使用 ROracle来访问Oracle数据库. 我注意到,自夏天时间更改以来,任何DATE(日期时间)Oracle列现在都被错误地转换(我在R中得到的时间比在Oracle DB中少一个小时). 从vignette的第12页(我很难理解)看起来像ROracle和R交换日期时间是自1-1-1970 UTC以来的

我在R中使用 ROracle来访问Oracle数据库.

我注意到,自夏天时间更改以来,任何DATE(日期时间)Oracle列现在都被错误地转换(我在R中得到的时间比在Oracle DB中少一个小时).

从vignette的第12页(我很难理解)看起来像ROracle和R交换日期时间是自1-1-1970 UTC以来的秒数,并且R随后调整为当地时区.

这就是我的工作

drv <- dbDriver("Oracle");
con <- dbConnect(drv,username = Login,password = Pwd,dbname = DB,prefetch=TRUE,bulk_read=1e6);

test.query <- "SELECT * FROM MYTABLE WHERE ( A > to_date('2008-03-03 12:30:00','YYYY-MM-DD HH24:MI:SS') AND A < to_date('2008-03-03 12:40:00','YYYY-MM-DD HH24:MI:SS')  AND [other stuff])"

test <- dbGetQuery(con,test.query);

head(test[,c("A","B","C")])
#                    A                   B                   C
#1 2008-03-03 11:30:38 2008-03-02 23:00:00 2008-03-02 23:00:00 #HERE IT SHOULD BE +1 HOUR
#2 2008-03-03 11:30:38 2008-03-02 23:00:00 2008-03-02 23:00:00
#3 2008-03-03 11:30:41 2008-03-02 23:00:00 2008-03-02 23:00:00
#4 2008-03-03 11:31:25 2008-03-02 23:00:00 2008-03-02 23:00:00
#5 2008-03-03 11:31:25 2008-03-02 23:00:00 2008-03-02 23:00:00
#6 2008-03-03 11:31:34 2008-03-02 23:00:00 2008-03-02 23:00:00

class(test$A)
[1] "POSIXct" "POSIXt" 
attributes(test$A)
$class
[1] "POSIXct" "POSIXt"

这是我的sessionInfo()

sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252    LC_MONETARY=French_France.1252
[4] LC_NUMERIC=C                   LC_TIME=French_France.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] data.table_1.8.9 ROracle_1.1-7    DBI_0.2-5       

loaded via a namespace (and not attached):
[1] tools_2.15.2

以下是我从管理员处获得的Oracle DB的信息

我该怎么做才能正确解决这个问题(不只是增加1小时,我将不得不在夏季结束时收回)

解决方法

这似乎在2014-11-20发布的 ROracle-1.1.12中得到修复.有关时区如何工作的信息,请参阅有关?dbReadTable的文档.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读