Python3与sql变量

时间:2013-10-20 22:40:25

标签: python mysql sql select

您好我正在使用python。我有一个文件,通过查询从数据库中选择数据。但我想选择在时间戳上过滤的数据。我可以选择所有数据(使用简单的选择......来自等)。但是如果我在整个查询中添加WHERE查询,程序将会失败。

我希望有人可以帮助我。

到目前为止,这是我的代码:

import datetime
import time
import mysql.connector

ts = '2013-10-21 00:00:00'
f = '%Y-%m-%d %H:%M:%S'

now = datetime.datetime.strptime(ts,f)
print (now)

time.strftime('%Y-%m-%d %H:%M:%S')
print (time.strftime)

connection = mysql.connector.connect(user='**', password='**', host='**', database='*dbname*')
cursor = connection.cursor()

str_now = now.date().isoformat()

query = ("SELECT version, protocol, ttl, des_address, des_port, source_address, source_port, timestamp  FROM *tablename* **WHERE timestamp = %s", (str_now))** 

cursor.execute(query)

for (version, protocol, ttl, des_address, des_port, source_address, source_port, timestamp) in cursor:
      print("Version:"+str(version),"Protocol:" + str(protocol), 
      "TTL:" + str(ttl), "Destination Address:" + str(des_address), 
    "Destination Port:" + str(des_port), "Source Address:" + str(source_address), 
        "Source Port:" + str(source_port), "Timestamp:" + str(timestamp))

print (cursor.lastrowid)

如果我运行此代码,我将收到以下错误:“AttributeError:'tuple'对象没有属性'encode'”。

当我在Google上搜索时,我找不到一个好的答案。

亲切的问候

1 个答案:

答案 0 :(得分:0)

我认为你需要划定你的

WHERE timestamp = %s

WHERE timestamp = '%s'