MySQL使用Python删除表中的行

时间:2019-03-06 04:58:05

标签: python mysql python-3.x

我正在使用Python3和MySQL。我有一个日期和时间格式(dateS)的字符串值。

  import datetime
  dateS = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
  # print(dateS)                 # 2018-08-27 00:30:00

我需要删除表“ bts_l3_single_value_data”中的行,并检查start_time等于提到的日期时间。

  sql = """DELETE FROM bts_l3_single_value_data WHERE start_time = dateS"""

执行此操作时,我收到错误消息“错误:(1054,“'where子句'中的未知列'dateS'””)“,并且在打印sql语句时给出该错误;

 DELETE FROM bts_l3_single_value_data WHERE start_time = dateS 

不将dateS字符串转换为日期时间格式。

任何帮助。谢谢

2 个答案:

答案 0 :(得分:1)

您正在使用dateS作为字符串,如果要在其中放置参数,最好使用f strings

sql = f"""DELETE FROM bts_l3_single_value_data WHERE start_time = {dateS}"""

但是最好使用result来提高安全性。

答案 1 :(得分:0)

在SQL查询中使用.format来诱导这样的值。下面是一个例子

sql = """
         DELETE FROM from bts_l3_single_value_data where start_time ='{}'
       """.format(dateS)