У меня есть эта база данных на SQL Server. Когда я запускаю следующий запрос:RODBC возвращает 0 строк, хотя есть много строк
SELECT * FROM myTable WHERE myDateField <= '2014-12-31'
Я получаю 51618 строк.
Но когда я запускаю тот же запрос из R, используя RODBC, я получаю «< 0 rows> (или 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
Просто чтобы попробовать ... Можете ли вы сделать вид на сервере, который определен вашим запросом, а затем запустить 'select * from your_view' в R? Еще одна вещь, которую нужно сделать, - это перемещать ваш '2010-01-01' ближе к' 2014-12-31', чтобы увидеть, где происходит пробой. –
Ha! Так оно и было. Я продолжал перемещать дату ближе и ближе к 2014-12-31, как вы предложили, и поэтому я выяснил, что проблема заключается в форматировании: почему-то даты интерпретируются как yyyy-dd-mm, когда SQL Server получает запрос от RODBC. Большое спасибо! Теперь выясняем, почему это происходит. – Parzival
https://msdn.microsoft.com/en-us/library/ms189491.aspx –