2015-02-03 4 views
0

Я не могу получить функцию sqlQuery RODBC для возврата запросов с предложением WHERE, которое выполняет поиск по метке времени. Тип данных базы данных - это метка времени. Меня не волнует время, я просто хочу дату (однако для будущей масштабируемости знание того, как использовать время, может быть не так уж плохо). Ниже приведен очень простой пример. Я знаю, что эти записи существуют.R RODBC sqlQuery и предложение WHERE для поиска временных меток

sqlQuery(conn.prb, paste("SELECT * FROM x", 
"WHERE ENDDATE > 2014-12-22"), max=10) 

Ошибки я получаю:

[1] "42818 -401 [IBM] [CLI Driver] [DB2/AIX64] SQL0401N Типы данных операндов для операции \"> \ "не совместимы или сопоставимы. SQLSTATE = 42818 \ r \ n"

Любая помощь будет высоко оценена. Благодаря!

+0

Я думаю, что вы должны заключить дату между тиками: '" select * from x where ENDDATE> '2014-12-22' "' – Barranka

+0

Просто для того, чтобы убедиться: в каких СУБД вы используете? SQL-сервер, MySQL, PostgreSQL, ...? – Barranka

ответ

0

Очевидно, что при использовании драйверов DB2 ODBC даты должны быть одинарными в выражении оператора с двойным кавычкой SELECT.

+0

Это стандарт в SQL для строк, дат и т. Д., Чтобы требовать одинарные кавычки. Самый простой способ иметь строку R, которая включает одинарные кавычки, - использовать двойные кавычки, чтобы отметить начало и конец строки, но вы также можете избежать одиночных кавычек с обратным слэшем. – Gregor

Смежные вопросы