MySQL запрос с использованием даты с python возвращает всегда один и тот же идентификатор - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь запросить MySQL БД с датой и вернуть идентификатор. Моя таблица выглядит следующим образом:

| periodid | period     |
| -------- | ---------- |
| 3        | 2014-04-01 |
| 7        | 2014-09-01 |
| 8        | 2014-07-01 |
| 9        | 2014-02-01 |

Я могу добавить записи в эту таблицу, используя py mysql. Но когда я пытаюсь выбрать id с предложением where, все, что я могу получить, это 1. Вот код:

import pymysql
from datetime import datetime

conn = pymysql.connect(user="", password="", host="", database="")
c = conn.cursor()

period = "01-02-2014"
date = datetime.strptime(period, '%d-%m-%Y')
# date returns datetime.datetime(2014, 2, 1, 0, 0)

c.execute("SELECT PeriodID FROM Periods WHERE Period = %s", (date, ))
# returns 1, always 1

Я даже попытался в качестве строки "2014-02-01" и также сделал строка устарела, используя код ниже:

str_date = date.strftime("%Y-%m-%d")

Я все еще получаю 1 взамен. После 1 часа попыток я решил спросить. Спасибо за вашу помощь.

1 Ответ

1 голос
/ 06 февраля 2020

После выполнения cursor.execute вы должны извлечь записи

Попробуйте добавить fetchall () в конце и проверьте

Для получения дополнительной информации проверьте ссылку ниже

https://thepythonguru.com/fetching-records-using-fetchone-and-fetchmany/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...