Как использовать MySQL-соединитель для получения значения даты и времени? - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь извлечь строку из таблицы с именем players, которая содержит столбец с именем 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

У меня нет проблем с извлечением строк из других таблиц, которые не содержат 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 правильным способом?

1 Ответ

0 голосов
/ 31 октября 2019

Вы получаете эту ошибку, потому что вы получаете datetime как объект. Следовательно, почему ошибка говорит, что 'datetime.datetime object не имеет атрибута split. Вы пытаетесь запустить строковый метод для объекта.

Попробуйте сначала преобразовать данные из результатов в строку, используя str(). Затем запустите на нем свои функции.

...