Чтение обратно DateTime в SQLite3Python

Программы на Python
Anonymous
 Чтение обратно DateTime в SQLite3

Сообщение Anonymous »

Я использую 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

Вернуться в «Python»