【发布时间】:2012-06-12 20:52:01
【问题描述】:
使用 Python 和 Mysqldb 库从 MongoDB 中提取一些数据并将其插入 MySQL 数据库。
+-------------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------+------+-----+---------+----------------+
| id | int(16) | NO | PRI | NULL | auto_increment |
| subject | tinytext | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
+-------------------+------------+------+-----+---------+----------------+
created_at = "2012/06/08 11:47:40 -0700"
sql1 = ("INSERT INTO `items` (`description`, `created_at`) VALUES (%s, %s)", (description, created_at)
try:
cursor.execute(*sql1)
except MySQLdb.Error, e:
print "Error %s: %s" % (e.args[0], e.args[1])
对于第一次插入数据库,我收到了警告,但是我没有收到后续插入的警告。
conf/db_tools-import.py:53:警告:第 1 行的列“created_at”的值超出范围 cursor.execute(*sql1)
我该如何解决这个问题? 谢谢。
【问题讨论】:
-
我认为 MySQL 不支持 datetime 的小时偏移量。
-
这不是正确的 DATETIME 值。格式为
YYYY-MM-DD HH:MM:SS。根本不支持时区 -
酷,谢谢。还有一个问题,为什么我没有收到后续插入的警告以及插入是如何起作用的?
-
我不知道为什么您没有收到后续操作的警告,但是插入成功了,因为 mySQL 尽可能地将字符串转换为 DATETIME(甚至可能导致正确的日期)。这只是一个警告 - 但您也可以将服务器配置为抛出错误(“严格模式”)
标签: python mysql mysql-python