Расчет timedelta из результатов сеанса. - PullRequest
0 голосов
/ 16 марта 2020

Я читал много вопросов и ответов об арифметике c с datetime.timedelta, и все они имеют один и тот же недостаток: все они используют datetime.now в качестве отправной точки. Что если вы не хотите начинать с этого момента? Скажем, у вас есть запрос SQL, который возвращает таблицу, но последняя дата в таблице когда-то была go, и вы хотите вычислить timedelta по самой последней дате в этой таблице данных? Допустим, у вас есть:

data = engine.execute("SELECT * FROM measurement")
Measurement = Base.classes.measurement
results = session.query(Measurement).order_by(Measurement.date.desc()).all()

Теперь вы можете напечатать первую запись в результатах, а затем жестко указать начальную и конечную даты, например, вы можете получить выходные данные 2017-08-23 (три года a go), и если вы хотите получить данные за прошлый год, вы можете жестко указать дату начала как 2016-08-23. Но есть ли способ сделать это без жесткого кодирования?

...