Разница между двумя датами в Python и MySQL Workbench - PullRequest
1 голос
/ 28 апреля 2019

у меня дата хранится в базе данных MySQL. Я выбрал ее с помощью Python и добавил к ней 15 дней (сделано успешно), теперь мне нужно получить разницу этой даты с текущей датой

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 WHERE Username = 'afif' AND  Book_Code = 12'''
mycursor.execute(date_query)
date_fetch = mycursor.fetchall()
date1 = date_fetch[0]
print(date1)
d1 = date1[0]
diff = d1 + datetime.timedelta(days=15)
dc = diff.strftime('%Y-%m-%d')
print("diff:", dc)
today1 = datetime.datetime.now().strftime('%Y-%m-%d')
print("today1:", today1)
day = dc - today1
print(day)

Мне нужна разница в днях (int), чтобы я мог рассчитать штраф

ошибка отображается так:

Traceback (последний последний вызов):

(datetime.datetime (2019, 4, 18, 15, 47, 51),)

diff: 2019-05-03

Файл "C: /Users/shaik/Desktop/lib/d.py", строка 16, в

сегодня1: 2019-04-28

день = постоянный ток - сегодня1

TypeError: неподдерживаемые типы операндов для -: 'str' и 'str'

Процесс завершен с кодом выхода 1

1 Ответ

0 голосов
/ 28 апреля 2019

Чтобы вычислить разницу, вы должны использовать объект datetime.datetime.Затем, когда вы вычитаете, вы получаете объект timedelta.

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 WHERE Username = 'afif' AND  Book_Code = 12'''
mycursor.execute(date_query)
date_fetch = mycursor.fetchall()
date1 = date_fetch[0]
print(date1)
d1 = date1[0]
diff = d1 + datetime.timedelta(days=15)
dc = diff.strftime('%Y-%m-%d')
print("diff:", dc)

# Below is the updated piece from your code
today1 = datetime.datetime.today() 
print("today1:", today1.strftime('%Y-%m-%d'))
delta = diff - today1
print(delta.days) 

Надеюсь, это поможет !!

...