7

我有一个由 strptime 函数生成的日期时间值

import MySQLdb
a = time.strptime('my date', "%b %d %Y %H:%M")

MySql 数据库中有一个 DATETIME 类型的列。当我尝试将此值插入数据库时​​,显然,我得到了错误

mysql_exceptions.OperationalError: (1305, 'FUNCTION time.struct_time does not exist')

INSERT INTO myTable(Date......) VALUES(time.struct_time(tm_year=2222, tm_mon=4, tm_mday=1, tm_hour=1, tm_min=2, tm_sec=4, tm_wday=1, tm_yday=118, tm_isdst=-1), ......)

如何将此值插入数据库?

4

1 回答 1

10

你现在传入了一个time.struct_time对象,这是 MySQL 一无所知的。您需要将时间戳格式化为 MySQL 可以理解的格式。不幸的是,MySQLdb图书馆不为你做这件事。

使用该datetime模块将是最简单的,但您也可以使用该模块执行此操作time

import datetime

a = datetime.datetime.strptime('my date', "%b %d %Y %H:%M")

cursor.execute('INSERT INTO myTable (Date) VALUES(%s)', (a.strftime('%Y-%m-%d %H:%M:%S'),))

对象上的.strftime()方法调用以datetime.datetimeMySQL 将接受的方式格式化信息。

time仅使用模块执行相同的任务:

import time

a = time.strptime('my date', "%b %d %Y %H:%M")

cursor.execute('INSERT INTO myTable (Date) VALUES(%s)', (time.strftime('%Y-%m-%d %H:%M:%S', a),))
于 2013-05-03T13:06:04.987 回答