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 子句搜索时间戳的主要内容,如果未能解决你的问题,请参考以下文章
如何让 sum 函数在 RODBC 中的 SQLquery 中工作