Я использую Python для создания базы данных SQLite3 в памяти с столбцом TimeStamp. Когда я использую min () или max () в этом столбце в моем запросе, столбец возвращается как строка, а не как объект Python DateTime. Я прочитал предыдущий вопрос на Stackoverflow, который предоставил решение для обычных операторов Select, но он не работает, если используется max () или min (). Вот пример: < /p>
>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
>>> c.execute('select * from foo')
>>> c.fetchall()
[(23, datetime.datetime(2010, 12, 14, 1, 15, 54, 685575))]
>>> c.execute('select max(baz) from foo')
>>> c.fetchall()
[(u'2010-12-14 01:15:54.685575',)]
< /code>
Я попытался отдать результат в TimeStamp, но она возвращает только год: < /p>
>>> c.execute('select cast(max(baz) as timestamp) from foo')
>>> c.fetchall()
[(2010,)]
< /code>
Есть ли способ получить правильный объект DateTime, без ручного преобразования строки с использованием DateTime.Strptime () после получения его? < /p>
Подробнее здесь: https://stackoverflow.com/questions/442 ... in-sqlite3