返回列表 上一主題 發帖

python 融資融券彙總 (全部)"資料

其實你提到的 :
"目前的想法是   python 抓取資料至 sqlite3,vba 從 sqlite3 取出資料"
在實務上這種 ...
c_c_lai 發表於 2016-9-30 15:22


原來如此,小弟是看長期月線的,所以是要統計歷史資料沒有錯
線上即時作業 小弟沒辨法,原來是操作手法的不同

故,泥用python取出sql內的表格,只是單純要畫圖?
印像中   台灣的 線上即時作業 都是用 excel (國外聽說改掉了)
用vba才可以即時互動   python應該還不行~~不過也不一定,說不定多google  就有高手作出來了呢

ps:咳咳~~大家上班不上班的在聊這個,哈哈哈

TOP

回復 49# c_c_lai


   你執行的情況,真的很奇怪!我執行了3次從2016/1/1到2016/9/29 也都沒有得到像你一樣的結果
你再把資料庫刪掉,觀察第一次是不是會不完整,從2016/1/1到2016/9/29共有170筆資料,看是不是會不夠
我程式裡面,只有插入INSERT INTO...並沒有修改的語句而且當有重覆值時,並不會執行任何動作
except Exception as e:
            pass
再麻煩你了

TOP

由於 sqlite3 在日期時間 是以文字串存入,而非以日期時間格式存入(如:#2016/01/06#)
而sqlite3的date函數的日期格式必須像'2016-01-06'年月日需以'-'隔開 ,若以'2016/01/06' 斜線 '/'隔開,以SQL語法會無法計算
所以在存入sqlite3資料庫的日期,必須先處理

在 dd=dat.strftime('%Y/%m/%d')的下行需加入另一句
sqldate=dat.strftime('%Y-%m-%d')

而這句add_data(regs=re,date=dd)必須修改為
add_data(regs=re,date=sqldate)

在以後的日期處理,就會容易處理了

sqlite3在日期查詢方面,例如說要查詢 '2016-01-01' 到 '2016-01-31'
在SQL語法方面 原來的用法 WHERE 日期 BETWEEN '2016-01-01' AND '2016-01-31'
而sqlite3 卻不能以 BETWEEN 去處理,就像前面說的,日期時間 是以文字串存入,文字串不能用在日期時間處理

所以sqlite3的SQL語法為
"select * from [0050] where julianday(日期)>=julianday('2016-01-01') and julianday(日期)<=julianday('2016-01-31')"

TOP

回復 52# lpk187
我的是 179 Records。
A0B.png
2016-9-30 17:00

TOP

太棒了!  謝謝大大的分享~~

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題