如何使用Sqlquery for rodbc使用日期时间过滤器查询表

时间:2019-06-06 16:39:24

标签: sql r oracle datetime rodbc

我正在尝试使用R查询oracle数据库中的表,由于我可以提取原始表的前10条记录,因此rodbc的连接有效。

例如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

在sqlquery中为datetime字段添加where子句后,我就开始出错:

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

原始oracle数据库中的DATE_ADDED字段值是日期时间,如下所示:2018-02-01 00:00:00

尝试了其他一些方法(将子句datetime转换为数字秒,但是它返回预期的数据类型错误)。

0 个答案:

没有答案