Ваш синтаксис недопустим в SQLite. Я думаю, что вы имеете в виду:
select * from stock_stats where strftime('%m', date) + 0 = ?
Обоснование: strftime('%m', date)
извлекает часть месяца из столбца date
и возвращает строку типа '02'
. Вы можете просто добавить 0
, чтобы преобразовать значение в цифру c.
Обратите внимание, что:
вам также необходимо выполнить фильтрацию по части года, чтобы избегайте смешивания данных за разные годы
, более эффективным решением было бы передать 2 параметра, которые определяют начало и конец диапазона дат; это позволило бы избежать использования функций даты в столбце date
.
date >= ? and date < ?