Как выбрать разные годы из DateTime с Peewee - PullRequest
0 голосов
/ 29 июня 2018

Я создал таблицу 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-запроса. Интересно, однако, есть ли более чистый путь.

Спасибо и всего наилучшего.

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете сделать это так:

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)
...