【发布时间】:2015-11-10 17:16:43
【问题描述】:
我在 SQL Server 上有这个数据库。当我运行以下查询时:
SELECT * FROM myTable WHERE myDateField <= '2014-12-31'
我得到 51618 行。
但是当我使用 RODBC 从 R 运行完全相同的查询时,我得到“(或 0-length row.names)”。
现在假设我更改了日期:
SELECT * FROM myTable WHERE myDateField <= '2010-01-01'
然后我直接在 SQL Server 和 R 上得到完全相同的结果(!?)。
我找到了这个answer,所以我尝试将believeNRows = FALSE 和rows_at_time = 1 添加到我的odbcDriverConnect 语句中。但这并没有改变什么。
那么,这里可能发生了什么?我已经在这工作了将近 24 小时,但我完全没有想法。
客户端:CentOS 7.1.1503、R 3.2.1、RODBC 1.3-12
服务器:Windows Server 2012、SQL Server 2014
【问题讨论】:
-
只是为了尝试一些东西......你能在服务器上创建一个由你想要的查询定义的视图,然后在 R 中运行
select * from your_view吗?另一件事是继续将您的2010-01-01移近2014-12-31,以查看故障发生的位置。 -
哈!做到了。正如您所建议的那样,我不断将日期越来越接近 2014-12-31,所以我发现问题出在格式上:当 SQL Server 从RODBC。非常感谢!现在要弄清楚为什么会发生这种情况。
-
解决了!如果你想把你的评论变成一个答案,我会接受它,所以你会得到适当的信任。
标签: sql-server r rodbc