2013-06-24 50 views
0

這似乎是一個非常愚蠢的問題,但我無法找到任何東西它粘貼回蜱或撇號中的R元素

假設我有以下對象調用SQL連接

sql1 = na.omit(sqlQuery(con,paste("SELECT UNIX_TIMESTAMP(timestamp), rawPressure1, rawPressure2 FROM ",sensorname[[1]][1],"_Data WHERE timestamp > '2013-05-25 17:29:00' AND timestamp < '2013-06-10 15:33:00'", sep=""))); 

這個聲明完美地抓住了我想要的所有數據。但現在我想稍微自動化一下。

假設我已經編譯開始和結束時間

> flowobs <- na.omit(read.csv('FlowObs.csv', header=TRUE)) 

    Start     Finish   FlowObs  Head 
1 2013-05-25 17:29:00 2013-05-26 18:38:00 0.3307309 70.8750 
2 2013-05-27 16:22:00 2013-05-28 20:15:00 0.3286909 72.1250 
3 2013-05-29 13:05:00 2013-05-30 14:42:00 0.3211857 74.0000 
4 2013-05-30 15:08:00 2013-06-03 11:54:00 0.3277443 75.0625 
5 2013-06-05 12:13:48 2013-06-06 14:30:00 0.3490507 77.3125 

現在讓我們做,抓住所述數據集flowobs的範圍[[1]] [1]的合成​​(試驗開始時的對象的對象程序),然後結束flowobs [[2]] [長度(flowobs [[2]])]

range <- c(paste(flowobs[[1]][1],sep = "'"),paste(flowobs[[2]][length(flowobs[[2]])],sep="'") 

因此,這裏就是我的問題進來。讓我們一圈又回到SQL語法。

...WHERE timestamp > '2013-05-25 17:29:00' AND timestamp < '2013-06-10 15:33:00'", sep=""))); 

SQL語法要求日期在字符串周圍有回刻度。

如果我們看一下我的對象的結構範圍內,你會期望

...WHERE timestamp > ",range[[1]]," AND timestamp < ",range[[2]], sep="")));" 

這應該只是罰款....事實並非如此。當我們查看範圍對象的元素時,我們可以得到它。

> range[[1]] 

「2013年5月25日17時29分00秒」

不是這個

'2013年5月25日17時29分00秒'

沒有人有一個想法我該如何解決這個問題?

+0

在我的瀏覽器顯示建議你在呼喚單引號「反單引號」,但也許是正確的,包括在SO降價背蜱只是難度? –

回答

1

使用此:

"...WHERE timestamp > '",range[[1]],"' AND timestamp < '",range[[2]],"'", sep="")));" 
+0

.....你必須嚇壞我開玩笑-_-。非常感謝你這工作 – ZDwhite