0

これは本当にばかげた質問のようですが、それについて何も見つかりませんでした

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] (テスト手順の開始) の範囲を取得し、次に end flowobs[[2]][length(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-05-25 17:29:00"

これではない

「2013-05-25 17:29:00」

この問題を解決する方法を知っている人はいますか?

4

1 に答える 1