我想将日期和时间保存到mysql表中,以后再使用它们。如何将元组转换为日期时间以使用此值?
from datetime import datetime, timedelta
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="**USER**",
passwd="**PASSWORT**",
database="**DATABASE"**
)
# Table already created like this:
# mycursor.execute("CREATE TABLE events2 (id INT AUTO_INCREMENT PRIMARYKEY, name VARCHAR(255), startdate DATETIME, enddate DATETIME, deadline INT, position INT, reminder INT)")
name = "Testevent"
startdate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
enddate = datetime.now() + timedelta(days=14)
deadline = 24
position = 25
reminder = 1
sql = "INSERT INTO events2 (name, startdate, enddate, deadline, position, reminder) VALUES (%s, %s, %s, %s, %s, %s)"
val = (name, startdate, enddate, deadline, position, reminder)
mycursor.execute(sql, val)
mydb.commit()
mycursor = mydb.cursor()
mycursor.execute("SELECT startdate FROM events2 WHERE id = '7'")
myresult = mycursor.fetchone()
print(myresult)
y = myresult + timedelta(days=14)
输出:
(datetime.datetime(2018, 8, 20, 18, 31, 42),)
Traceback (most recent call last):
File ".../Create_event.py", line 54, in <module>
y = myresult + timedelta(days=14)
TypeError: can only concatenate tuple (not "datetime.timedelta") to tuple
答案 0 :(得分:1)
myresult
是一个包含一个对象的元组:datetime.datetime
。然后,您必须做:
y = myresult[0] + timedelta(days=14)
这很容易注意到您的print
,我们看到datetime
对象包含在元组(语法为(elem1, [elem2, ...])
)中