【问题标题】:R RODBC sqlQuery and WHERE clause to search timestampsR RODBC sqlQuery 和 WHERE 子句搜索时间戳
【发布时间】: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、...?

标签: r timestamp where rodbc


【解决方案1】:

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

【讨论】:

  • SQL 中的标准字符串、日期等需要单引号。包含单引号的 R 字符串最简单的方法是使用双引号来标记字符串的开始和结束,但您也可以使用反斜杠转义单引号。
猜你喜欢
  • 2014-07-09
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多