R RODBC sqlQuery 和 WHERE 子句搜索时间戳

Posted

技术标签:

【中文标题】R RODBC sqlQuery 和 WHERE 子句搜索时间戳【英文标题】:R RODBC sqlQuery and WHERE clause to search timestamps 【发布时间】:2015-02-03 19:18:47 【问题描述】:

我无法让 RODBC sqlQuery 函数返回带有搜索时间戳的 WHERE 子句的查询。数据库的数据类型是时间戳。我不关心时间,我真的只想要日期(但是,对于未来的可扩展性,知道如何使用时间可能不是那么糟糕)。下面是一个非常简单的例子。我知道这些记录是存在的。

sqlQuery(conn.prb, paste("SELECT * FROM x", 
"WHERE ENDDATE > 2014-12-22"), max=10)

我得到的错误是:

[1] "42818 -401 [IBM][CLI Driver][DB2/AIX64] SQL0401N 操作 \">\" 的操作数的数据类型不兼容或可比较。SQLSTATE=42818\r\n "

任何帮助将不胜感激。谢谢!

【问题讨论】:

我认为你应该在刻度之间加上你的日期:"select * from x where ENDDATE > '2014-12-22'" 只是为了确定:您使用的是哪个 RDBMS? SQL 服务器、mysql、PostgreSQL、...? 【参考方案1】:

显然,对于 DB2 ODBC 驱动程序,日期需要在双引号 SELECT 语句中使用单引号。

【讨论】:

SQL 中的标准字符串、日期等需要单引号。包含单引号的 R 字符串最简单的方法是使用双引号来标记字符串的开始和结束,但您也可以使用反斜杠转义单引号。

以上是关于R RODBC sqlQuery 和 WHERE 子句搜索时间戳的主要内容,如果未能解决你的问题,请参考以下文章

将 R 变量传递给 RODBC sql 查询? [复制]

R 编程:RODBC 和数据框

RODBC-一个sqlQuery()调用中的多个表[重复]

如何让 sum 函数在 RODBC 中的 SQLquery 中工作

将值从 R:Error in sqlQuery(con, req) 插入数据库:第一个参数不是开放的 RODBC 通道

RODBC:为啥 sqlQuery() 中的空值和仅空格值的值为“NA”?