我有一个更新varchar时间域的查询,我不想让它们保持日期格式。我的字符串日期格式是 yyyy-mm-dd
是 2018-05-13
.
query = "UPDATE SchedulePlaylist
SET start = %s ,end = %s
WHERE playlist_id = %s AND schedule_id = %s" % (
str(start), str(end), playlist_id, schedule_id)
如何防止这种转换。我正在使用python和mysqldb连接器
1条答案
按热度按时间izkcnapc1#
正确的方法是使用参数传递值。由于日期/字符串问题,这可能会变得很尴尬。
在您的案例中,最简单的解决方案是在值周围添加单引号:
您的代码将2018-04-30视为算术并生成1984。单引号使它们表示为字符串。
您真正应该做的是修复表,使列具有正确的类型。如果必须将日期存储为字符串,则存储为yyyy-mm-dd的字符串是合理的类型。否则使用
date
. 但是,这并不能解决您的更新问题。更好的解决方案是使用参数,这很简单。参数在
execute
电话: