2013-04-09 4 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);