我正在尝试使用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转换为数字秒,但是它返回预期的数据类型错误)。