Не получается обновить дату в таблице
Хочу обновить дату в таблице. Вот отрывок кода:
today=datetime.date.today()
salary = input('Введите сумму зачисления:')
id = int(input('Введите id сотрудника'))
cursor.execute(f'''UPDATE public.salary SET dttm = {today}, salary = {salary}where employee_id = {id}''')
connection.commit()
Есть колонки: salary, employee_id, dttm (dttm - в формате text).
Пытаюсь сделать обновление dttm и salary, но после выполнения кода, salary меняется на указанное, а dttm становится 1990.
В чём проблема?
Пробовал today=datetime.date.today().strftime('%Y-%m-%d'), тоже не помогает.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
SQL надо "параметризовать" - иначе вы открываете дыру в безопасности и даете возможность использовать SQL Injections. Кроме того при использовании параметров SQL литералы передаются SQL серверу с правильным типом данных - это должно решить проблему с датами.
Попробуйте так:
sql = '''UPDATE public.salary SET dttm = %s, salary = %s where employee_id = %s'''
parms = [today, salary, id]
cursor.execute(sql, parms)