我找不到任何涉及使用多个位置参数的文档,但如果一个参数对应于数据帧的一列,则根据此逻辑,三个参数应对应于三列:
idsample <- 123
strdate <- "TO_DATE('01/02/2017', 'DD/MM/YYYY')"
enddate <- "TO_DATE('01/05/2017', 'DD/MM/YYYY')"
res <- dbGetQuery(myconn,
paste0("SELECT * FROM MYTABLE WHERE MYID = :1 AND ",
"MYDATE BETWEEN TO_DATE(:2, 'DD/MM/YYYY') AND TO_DATE(:3, 'DD/MM/YYYY')"),
data=data.frame(idsample, strdate, enddate))
注意,没有什么特别的
strdate
和
enddate
从API的角度来看,它们应该作为向量传递。
编辑:
制作的问题
TO_DATE
一个参数是,它可能最终以字符串形式转义。换句话说,使用我的第一种方法,您将在您的
WHERE
条款:
WHERE MYDATE BETWEEN
'TO_DATE('01/02/2017','DD/MM/YYYY')' AND 'TO_DATE('01/05/2017','DD/MM/YYYY')'
换句话说
截止日期
函数调用最终是一个字符串。相反,只绑定日期字符串。