python - 将元组转换为日期时间

标签 python mysql datetime tuples

我想将日期和时间保存到 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

最佳答案

myresult 是一个包含一个对象的元组:datetime.datetime。然后你必须做:

y = myresult[0] + timedelta(days=14)

由于您的 print,这很容易被注意到,我们看到 datetime 对象包含在一个元组中(语法为 (elem1, [elem2, ...]))

关于python - 将元组转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51935610/

相关文章:

python - 如何在 Python 中使用 Beautifulsoup 抓取结构不良好的 html 表?

python - 自定义 GAE 任务队列出错

php - CakePHP 约定名称或连接的名称

java - Joda-Time - 天数不增加

r - 导入指定时区的日期时间,忽略夏令时

python - Django 表单在刷新时再次提交

python - 如何在 lxml iterwalk 循环中用文本替换 HTML 标签

MySql - 使用外键约束创建表 `SortOrder`?

mysql - 变种vagrant使用wordmove部署和utf8mb4问题

python - 将 QdateTime 转换为普通的 python dateTime?