- 帖子
- 552
- 主題
- 3
- 精華
- 0
- 積分
- 578
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-2-8
- 最後登錄
- 2024-7-9
  
|
53#
發表於 2016-9-30 15:52
| 只看該作者
由於 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')" |
|