R RDB使用RODBC Connection查询日期

时间:2017-02-27 00:19:05

标签: sql r oracle rodbc rdb

我正在尝试使用类似Sys.Date()的东西查询旧的Oracle RDB数据库,因为它可以在R中运行,但我找不到正确的语法。

以下工作但我想定期运行它,因此固定的时间范围不起作用:

`Output <- SQLQuery ("SELECT * FROM tablename WHERE productionDate BETWEEN 20-FEB-2017 00:00:00 AND 21-FEB-2017 23:59:00")`

我希望有类似的东西:

Output <- SQLQuery ("SELECT * FROM tablename WHERE productionDate >= Today()-1")

我还尝试在查询之外分配宏变量,然后调用。在查询内部没有成功。这些条目可以追溯到几年,所以要花费几分钟来运行查询,然后我必须在事后对数据进行子集化。我希望R有一个更好的方法来查询数据库,甚至是基于日期的旧数据库。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这样的事情?

startDt <- as.Date("2016-02-12")
endDate <- as.Date("2016-03-12")
sqlstr <- paste0("SELECT * FROM tablename WHERE productionDate BETWEEN '",
    paste(format(c(startDt, endDate), "%d %B %Y"), collapse="' and '"),"'")
sqlstr