Как использовать Sqlquery для rodbc для запроса таблицы с фильтром datetime - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь запросить таблицу в oracle db, используя R, соединение для rodbc работает так, как я могу извлечь 10 лучших записей исходной таблицы.

например, таблица в базе данных oracle:

d1  DATE_ADDED
1   2014-11-03 13:04:54
2   2017-09-01 00:03:20
3   2018-03-02 09:40:36
4   2019-05-03 10:01:20

Я начинаю получать ошибки, как только добавляю предложение where для поля даты и времени в sqlquery:

SqlQuery(db,"select * from table where DATE_ADDED >= '2018-02-01T00:00:00'")

ОШИБКА: HY000 1843 [Oracle] [ODBC] [Ora] ORA-01843: недопустимый месяц

sqlQuery(db,query <- paste(
  'SELECT *',
  'FROM table',
  paste0("WHERE DATE_ADDED BETWEEN " ,
         as.numeric(as.POSIXct('2018-02-01 00:00:00'))+3653*24*60*60," AND ",
as.numeric(as.POSIXct('2019-02-01 00:00:00'))+3653*24*60*60),sep='\n'))

ОШИБКА: HY000 932 [Oracle] [ODBC] [Ora] ORA-00932: несовместимые типы данных: ожидаемый TIMESTAMP получил NUMBER

Значения поля DATE_ADDED в исходной базе данных oracle - это datetime, которое выглядит следующим образом: 2018-02-01 00:00:00

Попробовал несколько других методов (преобразование условия datetime в числовые секунды, однако возвращает ожидаемое значение).ошибка типа данных).

...