Я создал таблицу MySQL с этими полями:
id - int - auto_increment
dt - DateTime
desc - VARCHAR 255
Теперь я хотел бы знать, как выбрать только годы из этой таблицы с Peewee в Python. Равные годы должны быть удалены.
В SQL я бы просто сделал SELECT DISTINCT YEAR(dt) AS yr from data;
для получения желаемого результата.
Я знаю метод db.execute_sql
для выполнения необработанного SQL-запроса. Интересно, однако, если есть более чистый способ.
Спасибо и всего наилучшего.
Вы можете сделать это следующим образом:
query = Data.select(Data.dt.year.distinct())
for distinct_ts, in query.tuples():
print(distinct_ts)
Сортировка по дате:
distinct_ts = Data.dt.year.distinct()
query = Data.select(distinct_ts.alias('timestamp')).order_by(distinct_ts)
for row in query:
print(row.timestamp)