2013-04-09 43 views
0

我想要得到的條目日期爲給定月份和年份,對於我在SQliteman下一個查詢成功執行:SQLite和QSqlQuery:報價限制的值

SELECT date FROM Entries WHERE strftime('%Y-%m',date) = '2013-04' 

要使用此查詢與QSqlQuery我用下面的代碼

query.prepare("SELECT date FROM Entries WHERE strftime('%Y-%m',date) = ':year-:month'"); 
query.bindValue(":month", QString().sprintf("%02d", month)); 
query.bindValue(":year", QString::number(year)); 

但錯誤「參數數量不匹配」提高。這是的報價:年份:月,但我必須使用它或查詢不會返回任何結果。

如果引號無法使用,必須如何構建查詢?

回答

0

您不能替換字符串中的參數;參數本身就是整個字符串。

在連接字符串中的SQL:

query.prepare("SELECT ... WHERE strftime(...) = :year || '-' || :month"); 

你也可以事先構建整個字符串:

query.prepare("SELECT ... WHERE strftime(...) = :yyyymm"); 
query.bindValue(":yyyymm", month + "-" + year);