如何使用 mysql-connector 检索日期时间值?

How to use mysql-connector to retrieve a datetime value?

我正在尝试从名为 players 的 table 中检索一行,其中包含一个名为 lastheal 的列,类型为 datetime。 我的代码如下:

import mysql.connector
import datetime
class Player():
    def __init__(self, name):
        conn = mysql.connector.connect(host="xxxx", database="xxxx", user="xxxx", passwd="xxxx")
        c = conn.cursor(prepared=True)
        c.execute("""SELECT * FROM players WHERE nameplayer = %s""", (name,))
        for player in c:
            print player

我可以轻松地从其他 table 中检索不包含 datetime 值的行。但是,上面的代码会产生以下错误:

File "~/player.py", line 14, in __init__
    for player in c:
File "~/.local/lib/python2.7/site-packages/mysql/connector/cursor.py", line 1245, in fetchone
    return self._row_to_python(row, self.description)
File "~/.local/lib/python2.7/site-packages/mysql/connector/cursor.py", line 1231, in _row_to_python
    row = self._connection.converter.row_to_python(rowdata, desc)
File "~/.local/lib/python2.7/site-packages/mysql/connector/conversion.py", line 407, in row_to_python
    result[i] = self._cache_field_types[field_type](row[i], field)
File "~/.local/lib/python2.7/site-packages/mysql/connector/conversion.py", line 506, in _DATETIME_to_python
    (date_, time_) = value.split(b' ')
AttributeError: 'datetime.datetime' object has no attribute 'split'

如何让 mysql.connector 以正确的方式检索具有 datetime 值的行?

您收到此错误是因为您正在接收 datetime 作为对象。因此,为什么错误说 'datetime.datetime object 没有属性 'split'。您正在尝试 运行 对象上的基于字符串的方法。

首先尝试使用 str() 将结果中的数据转换为字符串。然后运行你的函数就可以了。