R RDB 使用 RODBC 连接查询日期

Posted

技术标签:

【中文标题】R RDB 使用 RODBC 连接查询日期【英文标题】:R RDB Query of date using RODBC Connection 【发布时间】:2017-02-27 00:19:04 【问题描述】:

我正在尝试使用 Sys.Date()-1 之类的东西查询旧的 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】:

这样的?

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

【讨论】:

以上是关于R RDB 使用 RODBC 连接查询日期的主要内容,如果未能解决你的问题,请参考以下文章

R - 使用 RODBC 库连接字符串和变量

使用 rodbc 包从 R 查询 sql server。需要将日期/时间值作为 where 语句的一部分传递到 sqlQuery

RODBC 连接无效

以编程方式构建 SQL 查询 R/Shiny/RODBC

RODBC posixct 日期字段使查询非常慢

如何在 R 中使用 RODBC 在 MS Access 中执行查询?