Я пытаюсь создать запрос SQL в Python, который должен получить в зависимости от режима записи до сегодняшнего дня из разных столбцов. Поэтому я хочу создать запрос SQL, который принимает разные аргументы столбцов. К сожалению, я всегда получаю пустые результаты, как только запускаю запрос SQL с переменными. (пробовал как с "?", так и с "методом dict")
def amount_of_testing_data(crs, mode):
if mode == "kanji_read":
col = "next_date_kanji_reading"
elif mode == "kanji_write":
col = "next_date_kanji_writing"
elif mode == "kana_read":
col = "next_date_kana_reading"
elif mode == "kana_write":
col = "next_date_kana_writing"
else:
return ("Error")
values = {"col_": col, "date_": datetime.datetime.now().isoformat()}
print(values)
crs.execute("""SELECT ID FROM vocabulary WHERE Column=:col_ <= :date_""", values)
return len(crs.fetchall())
Если я поместил табель непосредственно в запрос, SELECT вернет правильную сумму
def amount_of_testing_data(crs, mode):
value = {"date_": datetime.datetime.now().isoformat()}
if mode == "kanji_read":
crs.execute("""SELECT ID FROM vocabulary WHERE next_date_kanji_reading <= :date_""", value)
elif mode == "kanji_write":
crs.execute("""SELECT ID FROM vocabulary WHERE next_date_kanji_writing <= :date_""", value)
elif mode == "kana_read":
crs.execute("""SELECT ID FROM vocabulary WHERE next_date_kana_reading <= :date_""", value)
elif mode == "kana_write":
crs.execute("""SELECT ID FROM vocabulary WHERE next_date_kana_writing <= :date_""", value)
else:
return ("Error")
return len(crs.fetchall())
Можно ли сделать столбец переменной?