RODBC 返回 0 行,即使有很多行

RODBC returning 0 rows even though there are many rows

我在 SQL 服务器上有这个数据库。当我 运行 以下查询时:

SELECT * FROM myTable WHERE myDateField <= '2014-12-31'

我得到 51618 行。

但是当我 运行 来自 R 的完全相同的查询时,使用 RODBC,我得到“<0 行>(或 0 长度 row.names)”。

现在假设我更改日期:

SELECT * FROM myTable WHERE myDateField <= '2010-01-01'

然后我在 SQL 服务器上直接和在 R (!?) 上得到完全相同的结果。

我找到了这个 answer,所以我尝试将 believeNRows = FALSErows_at_time = 1 添加到我的 odbcDriverConnect 语句中。但这并没有改变任何东西。

那么,这里可能发生了什么?我已经处理了将近 24 小时了,但我完全没有想法。

客户端:CentOS 7.1.1503,R 3.2.1,RODBC 1.3-12

服务器:Windows服务器 2012,SQL服务器 2014

您可以做的第一件事是逐步更改工作日期,直到您发现导致查询失败的模式。也许(对于未来的读者)问题是 SQL 服务器需要标准以外的格式。如果是这种情况,那么对第一个月的第一天的查询将(仅巧合)return 正确的结果。您可以使用 set dateformat 让 SQL 服务器接受您需要的格式。