簡體   English   中英

SQLLite-在python中進行類型轉換

[英]SQLLite - type casting in python

我是python的新手。 我將表數據從AWS Redshift移到python中的內存sqllite數據庫中。

請參考以下表格結構:

紅移表:

s0 1

上欄中的我的值字段為Redshift時的Decimal。

當我嘗試將數據帶到sqllite時,我發現從Redshift獲得的結果中包含Decimal關鍵字,因此我無法將其插入也標記為Decimal的sqllite表中(這是鏈接對於我之前提出的相同問題)。 所以我將數據類型更改為varchar(30),以便我的值可以適合sqllite表。

請參考下面的表結構以獲取我的內存sqllite表:

在內存中的sqllite表

在此處輸入圖片說明

現在,我想在我的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 雲有人向我解釋了這種行為,我在這里做錯了什么? 該如何處理?

在SQLite中,它是這樣的:

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

有關更多信息,請參閱文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM