Ошибка соединителя python mariadb при получении результатов из DATETIME со значением NULL

Ну, я думаю, что-то не так с разъемом mariadb ...

У меня есть строка таблицы, которая выглядит так:

я бызаглавиекатегорияДата ОтправкиДата возвращениясодержаниефайлID пользователя
6тест 7102021-04-01 21:50:21содержание 7соломкаf9cdaf.txt16

Проблема в том, что у меня есть поле DATETIME, которое имеет значение NULL (дата date_due не является обязательной в моем приложении)

Похоже, что после передачи значений методу execute () метод fetchall () анализирует возвращенные данные по-другому.

Первый случай отлично работает Второй возвращает "ValueError: год 0 выходит за пределы допустимого диапазона".

id=("6",)
statement1 = "select * from posts where id = 6"
statement2 = "select * from posts where id = ?"

db.cursor.execute(statement1)
result = db.cursor.fetchall()
for x in result:
     print(x)

db.cursor.execute(statement2, id)
result = db.cursor.fetchall()
for x in result:
     print(x)

Пытался перечислить () коннектор - результат тот же

Я попытался изменить значения и атрибуты столбца таблицы - результат тот же

Я подумал, что это проблема версий, поэтому я обновился до последней версии python, сервера mariadb и соединителя python (на ubuntu 20.04) - тот же результат

Результат:

6, 'test 7', 10, datetime.datetime(2021, 4, 1, 21, 50, 21), None, 'content 7', 'strawsf9cdaf.txt', 16)
ValueError: year 0 is out of range

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/project dir/main_test3.py", line 38, in <module>
    result = db.cursor.fetchall()
SystemError: <method 'fetchall' of 'mariadb.connection.cursor' objects> returned a result with an error set

Process finished with exit code 1

Любая помощь будет оценена

Мне это определенно кажется ошибкой с разъемом.

Tim Roberts 06.04.2021 09:25

как мне сообщить об этом? не лучше ли просто переключиться на соединитель mysql: D Я почесал голову над этим несколько дней уже 0.o

Kiusa Diakusen 06.04.2021 09:33

На странице mariadb.com есть страница «Связаться с нами».

Tim Roberts 06.04.2021 09:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
22
1

Ответы 1

Это была ошибка в MariaDB Connector / Python, которую я недавно исправил. Исправление будет доступно в следующей версии (1.0.7).

Дата «0000-00-00» недействительна в Python и поэтому должна быть преобразована в None.

Спасибо за ваш отчет.

Другие вопросы по теме

У вас есть ошибка в синтаксисе SQL; соответствует версии вашего сервера MySQL для правильного синтаксиса для использования рядом с '2021-04-06', 'Нет') 'в строке 2
Как изменить character_set_client и character_set_results с помощью клиентской кодировки вместо изменения my.ini
Запрос Mysql, получение расстояния с использованием текущей широты и долготы пользователя, группировка по ветке и, наконец, получение ближайшего филиала магазина
<br /> <b> Примечание </b>: неопределенный индекс: x в <b> C: \ xampp \ htdocs \ Phpproject \ brand.php </b> в строке <b> 3 </b> <br / > []
Как редактировать некоторые строки поля на основе значения из нескольких полей в mysql?
Разница между created_at, созданным выражением mysql, и PHP laravel
Почему я не получаю ответ Json? Я хочу распечатать всю информацию. Но он показывает только идентификатор
XMLHttpRequest () - Не удалось загрузить ресурс: net :: ERR_CONNECTION_REFUSED
MYSQL IF Muestra true y false a la vez
Как сгенерировать ссылки на изображения с помощью php в таблице