我在SQL Server上有这个数据库。当我运行以下查询时:
SELECT * FROM myTable WHERE myDateField <= '2014-12-31'
我得到了51618行。
但是当我使用RODBC从R运行完全相同的查询时,我得到“&lt; 0 rows&gt;(或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
答案 0 :(得分:2)
您可以做的第一件事就是逐步更改工作日期,直到找到导致查询失败的模式。也许(对于未来的读者)问题是SQL Server期望的格式不是标准。如果是这种情况,那么对第一个月的第一天的查询(仅巧合)将返回正确的结果。您可以使用set dateformat让SQL Server接受您需要的格式。