使用 python 更新 SQLite 中的日期时间
UPDATE datetime in SQLite with python
我必须使用 python 在 SQL 列中插入日期时间,但是当我尝试以 YYYY-MM-DD HH:mm:SS SQL 格式插入字符串时它给了我这个错误 -sqlite3.OperationalError: near "11": syntax error -
该列现在是 TEXT 格式(我也试过 DATETIME)但它似乎不接受它,它接受的唯一格式是 YYYY-MM-DD。
这是我的代码:
for i in range(len(actualValue)):
attuale = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
c.execute('UPDATE alarm SET valoreAttuale = {} WHERE alarmId = {} '.format(actualValue[value], value + 1))
c.execute('UPDATE alarm SET raiseDateTime = {} WHERE alarmId = {} '.format("2020-09-28 11:10:45", value + 1))
You shouldn’t assemble your query using Python’s string operations because doing so is insecure; it makes your program vulnerable to an SQL injection attack
使用 placeholders 的另一个很好的论据是这个例子。如果第二个 sql 写成 而没有 format
,它看起来像这样:
UPDATE alarm SET raiseDateTime = "2020-09-28 11:10:45"
。但是 format
正在“消耗”引号 ("
),因此更新查询 认为 它有一个数字(毕竟 2020-09-28 计算为一个数字) 之后 sql 语法分崩离析。可以通过在适当的位置添加适当的引号来“固定”查询。相反,我建议使用占位符,因为这是一种推荐的风格和一个很好的习惯。
我必须使用 python 在 SQL 列中插入日期时间,但是当我尝试以 YYYY-MM-DD HH:mm:SS SQL 格式插入字符串时它给了我这个错误 -sqlite3.OperationalError: near "11": syntax error -
该列现在是 TEXT 格式(我也试过 DATETIME)但它似乎不接受它,它接受的唯一格式是 YYYY-MM-DD。
这是我的代码:
for i in range(len(actualValue)):
attuale = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
c.execute('UPDATE alarm SET valoreAttuale = {} WHERE alarmId = {} '.format(actualValue[value], value + 1))
c.execute('UPDATE alarm SET raiseDateTime = {} WHERE alarmId = {} '.format("2020-09-28 11:10:45", value + 1))
You shouldn’t assemble your query using Python’s string operations because doing so is insecure; it makes your program vulnerable to an SQL injection attack
使用 placeholders 的另一个很好的论据是这个例子。如果第二个 sql 写成 而没有 format
,它看起来像这样:
UPDATE alarm SET raiseDateTime = "2020-09-28 11:10:45"
。但是 format
正在“消耗”引号 ("
),因此更新查询 认为 它有一个数字(毕竟 2020-09-28 计算为一个数字) 之后 sql 语法分崩离析。可以通过在适当的位置添加适当的引号来“固定”查询。相反,我建议使用占位符,因为这是一种推荐的风格和一个很好的习惯。