SQLLite - приведение типов в python - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в питоне. Я перемещаю свои данные таблицы из AWS Redshift в базу данных sqllite памяти в питон.

Пожалуйста, обратитесь к структуре таблицы ниже:

Таблица красного смещения:

s0 1

Мое значение в приведенном выше столбце в десятичном виде при Redshift.

Когда я попытался перенести данные в sqllite, я обнаружил, что результат, который я получаю из Redshift, содержит ключевое слово Decimal, поэтому я не смог вставить его в таблицу sqllite, которая также была помечена как десятичная. (Вот ссылка для той же проблемы, которую я поднял ранее). Поэтому я изменил свой тип данных как varchar (30), чтобы мои значения могли помещаться в таблицу sqllite.

Пожалуйста, обратитесь к приведенной ниже структуре таблицы для таблицы sqllite my in memory:

в памяти sqllite таблицы

enter image description here

Теперь я хотел сделать сумму значения столбца на основе метки времени в моем скрипте Python, но я не смог получить ожидаемый результат.

Вот запрос, который я использую в Redshift для получения суммы, и я получаю ожидаемый результат:

select sum(value) from table where id = 9831 and item_date = '2018-11-01' and to_char(item_datetime, 'HH24MI') between '0000' and '2359';

Вот запрос, который я использую в своем скрипте, чтобы напечатать столбец значения в decimal и item_datetime в strftime, чтобы получить требуемый вывод:

select sum(CAST(value as decimal)) from table where id = 9831 and item_date = '2018-11-01' and strftime(item_datetime, 'HH24MI') between '0000' and '2359';

Но я получаю вывод как None. Облако, кто-нибудь объяснит мне такое поведение и что я здесь не так делаю? Как бороться с этим вопросом?

1 Ответ

0 голосов
/ 05 ноября 2018

В SQLite это выглядит так:

... AND STRFTIME('%H%M', item_datetime) BETWEEN '0000' AND '2359'

Для получения дополнительной информации см. документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...