gpt4 book ai didi

sql-server - RODBCExt : sqlExecute issue with dates

转载 作者:行者123 更新时间:2023-12-03 02:42:06 27 4
gpt4 key购买 nike

我试图在查询中使用参数,但我(或我的系统)似乎有日期问题。

我正在连接到 MS SQL Server

并定义我想要处理的特定日期

endDate <- '02.08.2015'
我的查询如下所示:

test <-"SELECT [RDate],[Currency_ID],[Rate],[NRate] 
FROM [dwh].[dbo].FC_CurrencyRate]
WHERE RDate = ? "

sqlExecute(myconn,test, endDate)

这会产生以下错误

Error in sqlExecute(myconn, test, endDate) : 22018 0 [Microsoft][SQL Server Native Client 11.0]Invalid character value for cast specification

[RODBCext] Error: SQLExecute failed

In addition: Warning message: In sqlExecute(myconn, test, endDate) : 22018 0 [Microsoft][SQL Server Native Client 11.0]Invalid character value for cast specification

然后我尝试更改日期格式

endDate <- as.Date(endDate, format='%d.%m.%Y')
sqlExecute(myconn,test, endDate)

但这会导致另一个错误

Error in sqlExecute(myconn, test, endDate) : 07006 0 [Microsoft][SQL Server Native Client 11.0]Restricted data type attribute violation

[RODBCext] Error: SQLBindParameter failed

In addition: Warning message: In sqlExecute(myconn, test, endDate) : 07006 0 [Microsoft][SQL Server Native Client 11.0]Restricted data type attribute violation

这是一个典型问题吗?是否有使用 R 的其他类型的日期格式?

我还尝试过拥抱问号?用引号括起来“?”。这导致Rstudio崩溃并且查询时间太长。

任何提示表示赞赏

最佳答案

我刚刚花了很长时间试图弄清楚如何使用 R 中的 sqlExecute 将日期作为参数传递到我的 DB2 数据库。我在任何地方都找不到简洁的答案,但我得到了这个输出类型:

> sql
[1] "select date from date where date = ?"
> sqlExecute(conn, sql, data = as.Date("2015-01-01"))
Error in sqlExecute(conn, sql, data = as.Date("2015-01-01")) :
07006 -99999 [IBM][CLI Driver] CLI0102E Invalid conversion. SQLSTATE=07006
[RODBCext] Error: SQLBindParameter failed

在阅读 RODBCext 文档时,我偶然发现了 Zozlak Source 中的这一行。

• cast dates using as.character(as.Date(column))

所以我尝试了一下:

> sqlExecute(conn, sql, data = as.character(as.Date("2015-01-01")), fetch = T)
DATE
1 2015-01-01
天哪!它 有效!!!

我希望这对某人有帮助。我无法判断这对于不同的 DBMS 是否是一致的解决方案,但对于我的 DB2 连接来说它工作得很好。

关于sql-server - RODBCExt : sqlExecute issue with dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com