#python #mysql #python-3.x
#python #mysql #python-3.x
Вопрос:
import mysql.connector
import datetime
mydb = mysql.connector.connect(host="localhost", user="root", password="afif123", db="library")
mycursor = mydb.cursor()
date_query = '''SELECT Date from issued_book '''
mycursor.execute(date_query)
date_fetch = mycursor.fetchall()
date1 = date_fetch[0]
print(date1)
today = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(today)
diff = today - date1
print(diff)
я получаю ошибку, подобную этой
(datetime.datetime(2019, 4, 18, 15, 47, 51),)
Обратная трассировка (последний последний вызов): 2019-04-20 17:38:41
Файл «C:/Users/Desktop/lib/d.py «, строка 12, в diff = today — date1
Ошибка типа: неподдерживаемые типы операндов для -: ‘str’ и ‘tuple’
Процесс завершен с кодом выхода 1
Комментарии:
1. Вы получаете ошибки или неправильные выходные данные?
2. после извлечения даты из базы данных я получаю это (datetime.datetime(2019, 4, 18, 15, 47, 51),) теперь я должен преобразовать его в это 2019-04-20 00:25:19 но как?
3. Почему вы должны ее конвертировать? Вы получаете datetime.datetime из базы данных, теперь вы можете сделать
today - date1
, если сегодня datetime.datetime.4. дата (сегодня) — дата (дата1) можете ли вы попробовать так? это должно работать
Ответ №1:
Поиск разницы между двумя датами — это всего лишь вопрос вычитания двух объектов datetime, например
import datetime
date1 = datetime.datetime(2019, 4, 18, 15, 47, 51)
date2 = datetime.datetime.now()
print(date2-date1)
#1 day, 20:58:11.972530
Комментарии:
1. я получаю такую дату (datetime.datetime(2019, 4, 18, 15, 47, 51),) и после вычитания его с текущей датой пользовательский интерфейс (pyqt) останавливается
2. Это означает, что что-то не так в том, как вы работаете с датами. Удалите часть пользовательского интерфейса и просто запустите код, который обрабатывает дату, чтобы изолировать проблему
3. (datetime.datetime(2019, 4, 18, 15, 47, 51),) Обратная трассировка (последний последний звонок): 2019-04-20 17:38:41 Файл «C:/Users/shaik/Desktop/lib/d.py «, строка 12, в <module> diff = today — date1 Ошибка типа: неподдерживаемые типы операндов для -: Процесс ‘str’ и ‘tuple’ завершен с кодом выхода 1
4. Убедитесь, что today и date1 имеют один и тот же тип данных, datetime.datetime
5. Пожалуйста, подумайте о том, чтобы принять мой ответ, если он помог вам @AfifShaikh 🙂
Ответ №2:
хорошо, это помогло мне
import mysql.connector
import datetime
mydb = mysql.connector.connect(host="localhost", user="root", password="afif123", db="library")
mycursor = mydb.cursor()
date_query = '''SELECT Date from issued_book '''
mycursor.execute(date_query)
date_fetch = mycursor.fetchall()
date1 = date_fetch[0]
print("date1:", date1)
d1 = date1[0]
print("a1:", d1)
today = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
t1 = datetime.datetime.strptime(today, "%Y-%m-%d %H:%M:%S")
print("today:", today)
diff = t1 - d1
print("diff:", diff)
ВЫХОДНАЯ
дата1: (datetime.datetime(2019, 4, 18, 15, 47, 51),)
a1: 2019-04-18 15:47:51
сегодня: 2019-04-21 12:00:47
разница: 2 дня, 20:12:56