Я пытаюсь извлечь данные, основанные на условии даты, соединяющейся с SQL, из R. Мое соединение с базой данных от Impala.
Ниже приведен мой пример кода.
dbGetQuery(src,"SELECT * FROM sample WHERE eventdate BETWEEN '2017-01-31' AND DATEADD(m,1,'2017-01-31')")
Я получаюошибка ниже при попытке запроса.
Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ", :
Unable to retrieve JDBC result set for select * from sample where
eventdate between '2017-01-31' and dateadd(m,1,'2017-01-31') ([Cloudera]
[ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0,
SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000,
errorMessage:AnalysisException: Could not resolve column/field reference: 'm'
), Query: select * from sample where eventdate between '2017-01-31' and dateadd(m,1,'2017-01-31').)
Вместо использования DATEADD
, если я жестко кодирую между двумя датами, я получаю результат, например:
dbGetQuery(src,"SELECT * FROM sample WHERE eventdate BETWEEN '2017-01-31' AND '2017-02-28' LIMIT 5")
Я получаю результат для вышеуказанного кодано я хочу использовать DATEADD
в своем коде, потому что у меня есть несколько условий дат, которые я выполняю, используя функцию цикла.
Любая помощь по этому вопросу, пожалуйста.