如何使用Peewee从DateTime中选择不同的年份

时间:2018-06-29 09:50:04

标签: python mysql peewee

我用以下字段创建了一个MySQL表:

id - int - auto_increment
dt - DateTime 
desc - VARCHAR 255

现在,我想知道如何使用Python在Peewee中从表中仅选择年份。相等的年份应删除。

在SQL中,我只需做SELECT DISTINCT YEAR(dt) AS yr from data;就可以得到想要的结果。

我知道执行原始SQL查询的db.execute_sql方法。但是我不知道是否有一种更清洁的方法。

感谢和问候。

1 个答案:

答案 0 :(得分:1)

您可以这样做:

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)