1

Qt アプリケーションで次の MySQL クエリを使用しています。

query.prepare(QString("SELECT productName, value, COUNT(value), SUM(value)"
                  "FROM tblmystock"
                  "WHERE time>=\'%1\' AND time<=\'%2\'"
                  "GROUP BY productName, value").arg(startDateTime, endDateTime));

次のエラーが表示されます。You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'>='2012-04-24 00:00:00' AND time<='2012-04-24 23:59:59:59' GROUP BY productName' at line 1 QMYSQL: Unable to execute query

bindValues を実行しようとしても、同じエラーで失敗します。

しかし、以下のように MySQL プロンプトで同じクエリを実行すると、正常に動作します。

mysql> SELECT productName, value, COUNT(value), SUM(value) FROM tblmystock WHERE time>='2012-04-24 00:00:00' AND time<='2012-04-25 23:59:59' GROUP BY productName, value;

誰かがこれに対する回避策を知っていますか?

4

1 に答える 1

1

timeは予約済みキーワードです。バッククォートを使用してエスケープします。との代わりに
使用することもできますbetween<=>=

WHERE `time` between '2012-04-24 00:00:00' AND '2012-04-25 23:59:59' 
于 2012-04-24T09:45:48.333 に答える