Запрос выбора Peewee для поля datetime не возвращает объект datetime - PullRequest
0 голосов
/ 27 января 2020

Здравствуйте, у меня есть поле datetime в моей модели, в то время как выполнение запроса select для модели peewee возвращает строковое представление поля datetime вместо фактического объекта datetime.

past_day = Model.select(Model, fn.MAX(Model.timestamp))[0].timestamp 
# timestamp is a field of type DateTimeField() ; above query returns a str object

type(past_day) # prints str.

Я хочу получить чистый python объект даты и времени из этого запроса, я искал везде, но не нашел решения.

1 Ответ

0 голосов
/ 27 января 2020

Работает нормально, насколько я могу судить:

db = SqliteDatabase(':memory:')

class R(Model):
    key = TextField()
    ts = DateTimeField()
    class Meta:
        database = db

db.create_tables([R])

for i in range(1, 10):
    R.create(key=str(i), ts=datetime.datetime(2020, 1, i))
r = R.select(R, fn.MAX(R.ts).alias('max_ts')).get()
print(r.key, type(r.max_ts), r.max_ts)

Печать:

9 <class 'datetime.datetime'> 2020-01-09 00:00:00

Попробуйте обновить, если вы используете устаревшую версию Peewee.

...