mysql - r Shiny 的日期范围输入到 sql 查询

标签 mysql r shiny shiny-server

我在下面有一个 sql 查询,它工作得很好。

 Select * from dbo.Employee where StartDate between '08/01/2014' and '08/31/2014' order by StartDate 

我正在修改此查询,以便它从 Shiny 的 UI (daterange) 获取日期输入。

sqlQuery(myconn, paste("Select * from dbo.Employee where StartTime between", "'as.character(input$daterange[1])'", "and", "'as.character(input$daterange[2])'", "order by StartTime"))

我得到一个错误

[1,] "22007 241 [Microsoft][SQL Server Native Client 10.0][SQL Server]Conversion failed when converting date and/or time from character string."
[,2] "[RODBC] ERROR: Could not SQLExecDirect ' Select * from.....                                                 Where StartDate between 'as.character(input$daterange[1])' and 'as.character(input$daterange[2])' order by StartDate '"

不确定如何修复此查询以使其从 Shiny 的 UI 中获取日期输入,需要帮助。

最佳答案

我使用 sub 函数来做到这一点,只需使用像这样的正则表达式:

my_date1 <- "08/01/2014"
my_date2 <- "08/31/2014"

my_query <- 'Select * from dbo.Employee where StartDate between DATE1 and DATE2 order by StartDate'
my_query <- sub("DATE1",my_date1,my_query);my_query <- sub("DATE2",my_date2,my_query)
# the result of your query is below
noquote(my_query)

# if you want the quotes for dates leave them there
my_query <- 'Select * from dbo.Employee where StartDate between "DATE1" and "DATE2" order by StartDate'
my_query <- sub("DATE1",my_date1,my_query);my_query <- sub("DATE2",my_date2,my_query)
# the result of your query is below
noquote(my_query)


# Now sub the inputs into those variables like so
my_query <- 'Select * from dbo.Employee where StartDate between DATE1 and DATE2 order by StartDate'
my_query <- sub("DATE1",input$daterange[1],my_query);my_query <- sub("DATE2",input$daterange[2],my_query)
noquote(my_query)

关于mysql - r Shiny 的日期范围输入到 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28934967/

相关文章:

r - 覆盖函数定义的部分

R Shiny : How do you change the background color of the Header?

r - 如何在 Shiny 的其他文本中显示输入文本?

html - 将显示属性设置为无会删除 href 目标

php - 检索数据库中的表到 phpexcel

mysql - 在 Mysql 中有条件地应用 ALTER 语句

mysql - sqoop 导入查询给出重复名称错误

mysql - 查找表中的所有重复行

去除极坐标图边缘的多余空间和环

javascript - 更改 R DT 数据表中控件的颜色