SQLite и QSqlQuery: цитирование ограниченных значений

Я хочу получить дату записи для данного месяца и года, для которых я успешно выполню в SQliteman следующий запрос:

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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]