Sobes.tech
Junior — Senior
50

Нахождение курса валюты, ближайшего к заданной дате

被问到的公司:

ОстровокОстровок
任务条件

Необходимо реализовать функцию, которая по переданной дате возвращает курс валюты, записанный в базе в момент, наиболее близкий к этой дате. В качестве примера используется Django‑модель CurrencyRate, содержащая поля rate (Decimal) и datetime (DateTime). В таблице могут быть записи за разные годы, а запрос должен подобрать значение, чей timestamp минимально отклоняется от запрошенного.

# currency service
class CurrencyRate(models.Model):
    rate = models.DecimalField(...)
    datetime = models.DatetimeField(...)

# Пример данных таблицы
| rate | datetime                      |
|------|-------------------------------|
| ...  | ...                           |
| 34.9 | 1999-05-21 15:44:12.983411    |
| 70.3 | 2022-12-20 08:30:16.123351    |
| 68.1 | 2023-01-09 12:30:13.431559    |
| 68.2 | 2023-01-10 10:00:12.123471    |

# Пример преобразования
| 2020-12-20 00:00:00.000000 -> 70.3 |
| 2000-12-20 00:00:00.000000 -> 34.9 |

def handler(dt: datetime) -> Decimal:
    ...