【发布时间】:2011-11-21 01:01:36
【问题描述】:
我正在尝试使用 RODBC 将一些数据从 Sql Server 2008 导入 R:
db <- odbcDriverConnect(connection = "Driver={SQL Server Native Client 10.0};Server=server; Database=db;Trusted_Connection=yes;")
results <- sqlQuery(db, "select timestamp from table where some-restriction")
数据存储在“日期时间”类型的列中。所有时间戳都是 UTC,但是我的系统时区是 CET。 R 将所有时间戳转换为“POSIXct”“POSIXt”类型的值,例如:
“2011-01-01 07:24:12 CET”
“2011-01-01 08:35:10 CET”
“2011-01-01 09:02:50 CET”
时间戳正确,时区错误。在我看来,由于没有明确指定时区,R 将我的本地时区分配给所有时间戳。
有没有什么方法可以指定数据的时区,所以时区信息是正确的?
【问题讨论】:
-
我没有 RODBC 和要连接的数据库,但您在查询数据库之前尝试过
Sys.setenv(TZ="UTC")吗? -
Sys.setenv(TZ='UTC') 确实可以工作。还有其他不影响整个系统的选项吗?
标签: sql-server r timezone utc rodbc