sqlite – python Получить CURRENT_TIMESTAMP как объект datetime

Я использую локальную базу данных sqlite для автономной обработки метаданных в своем приложении, а метаданные включают отметки времени.

У меня есть таблица, заявленная следующим образом:

CREATE TABLE if not exists tbl_dbsync_meta ( maindb_last_checked TIMESTAMP, global_scores_last_checked TIMESTAMP, localscores_syncup_last_checked TIMESTAMP) 

Теперь, в какой-то момент, я извлекаю CURRENT_TIMESTAMP из sqlite вместе со всеми другими отметками времени выше, чтобы, естественно, выяснить разницу во времени между теперь и всеми этими другими метками времени.

 SELECT CURRENT_TIMESTAMP as this_time, * FROM tbl_dbsync_meta 

Теперь проблема в том, что все остальные поля корректно извлекаются как объекты «datetime» в Python. Однако CURRENT_TIMESTAMP возвращается как строка.

Я попробовал лить CURRENT_TIMESTAMP :

 SELECT CAST(CURRENT_TIMESTAMP AS TIMESTAMP), * FROM tbl_dbsync_meta 

Но теперь он возвращается как INTEGER, и все, что возвращается, – год (2012).

Легкий способ обойти это – просто непосредственно SELECT время-diff из самого sqlite, вместо того, чтобы извлекать их в python, а затем играть. Другой вариант – использовать строку, возвращаемую CURRENT_TIMESTAMP , преобразовать ее в Python в «datetime» и использовать ее.

Однако мне нужно понять, ЧТО разница между CURRENT_TIMESTAMP (литой или иначе) и другими полями TIMESTAMP . Просто кажется неправильным, что это не работает.

Спасибо за вашу помощь.

PS: Обратите внимание: я никогда не храню объекты Datettime Python непосредственно в SQLite. В любое время, когда мне нужно обновить эту таблицу, я просто SET global_scores_last_checked = CURRENT_TIMESTAMP . Я только извлекаю даты из SQLite в Python по необходимости.

One Solution collect form web for “sqlite – python Получить CURRENT_TIMESTAMP как объект datetime”

При подключении необходимо установить PARSE_COLNAMES :

sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_COLNAMES)

Затем будет работать следующее:

select current_timestamp as 'ts [timestamp]'

Это вернет "2012-08-07 13:20:42" (<type 'datetime.datetime'>) .

CAST не работает (скорее всего, ошибка), а CURRENT_TIMESTAMP не возвращает тип datetime, что может быть ошибкой или функцией (помните, что Sqlite не имеет понятия о типах даты и времени, он хранит их как TEXT / REAL / INTEGER).

  • Невозможно применить методы на временных отметках с помощью встроенных встроенных модулей
  • время отправки fastfix (поле 52), отбрасывающее миллисекунды
  • python pandas TimeStamps для локальной временной строки с летним временем
  • Формат ISO-кода Python UTC datetime не включает Z (смещение Zulu или Zero)
  • Pandas: конвертировать временную метку в datetime.date
  • Сбросить временную часть временной отметки панды
  • Чтение даты и времени в sqlite3
  •  
    Interesting Posts for Van-Lav

    numpy.unique генерирует список, уникальный в каком отношении?

    Как создать пакет Scapy из необработанных байтов

    Удаление каскада Django на внешних внешних ключах

    Выпуклая оболочка в более высоких размерностях, нахождение вершин многогранника

    Как я могу динамически выполнять функцию в текущей области и добавлять ее как свойство вызывающей функции?

    Понятия в Python к выборке кортежей из списка

    Как я могу обслуживать медиафайлы в локальной среде Django?

    Совместное соединение XMPP между работниками сельдерей

    Python, модульное тестирование и издевательский импорт

    Получить отдельные элементы каждой группы другим полем на Data Scram 1.6 Spark 1.6

    Попытка разобрать `request.body` из POST в Django

    Рекомендации по лучшей упаковке Python Daemon

    ParseError: неверно сформированный (недопустимый токен) с использованием cElementTree

    Get pip для работы с git и github-хранилищем

    python, не получая полного ответа

    Python - лучший язык программирования в мире.