我正在尝试使用sqlQuery函数从SQL数据库中读取表。具体来说,我想要一个日期作为输入的函数,然后从SQL数据库中选择与给定日期匹配的数据。命令如下:
example=function(dateA)
{sqlQuery(channel,paste("select * from TABLE","where date=dateA"))}
example('2017-10-26')
请注意,SQL表上的日期格式为YYYY-MM-DD,并且在sqlQuery函数上写入特定日期时,上述命令正常工作。即使用命令时:
sqlQuery(channel,paste("select * from TABLE","where date='2017-10-26'"))
然而,当调用函数 example 并将日期作为输入时,这不起作用。 有没有人知道是否有办法克服这个问题?
答案 0 :(得分:1)
这是因为dateA
被视为字符串的一部分,而不是替换dateA
的值,请尝试改为:
example=function(dateA){
sqlQuery(channel,paste0("select * from TABLE","where date=", dateA))
}
example('2017-10-26')
此处,当您致电dateA
时'2017-10-26'
替换为example
,paste0
代替"select * from TABLE","where date="
和'2017-10-26'
(dateA
{1}})一起形成"select * from TABLE","where date='2017-10-26'"