對sqlite既恨又愛,在小項目里,用sqlite開發起來非常方便,效率足夠用。美中不足的是sqlite精簡了些功能及相關函數。如存儲過程,datediff,不支持並發寫入及遠程訪問(或許有些高手說這個不是問題,用共享或iis都可以解決,但這算真正解決嗎?),導致在開發過程中走了不少彎路。
最常用到的日期及時間比較函數datediff,在sqlite里被精簡了,網上也找不到詳細的的實現方法。今天就花了點時間來自己實現datediff功能。
折騰一段時間后發現sqlite里有個julianday函數轉化后可以直接相減,得到的結果是以天(day)為單位數值,如果不足一天會以小數表示。於是想到應該可以用來換算成時間,即可以進行時間比較,比如要計算精確到hour級的比較,可以這樣 sqlite》 select (julianday( datetime('2013-10-09 17:40') )- julianday(strftime('%Y-%m-%d %H:%M',datetime('now','localtime'))))*24 。精確到分鍾的比較可以*24*60。
julianday容易讓人想當然的以為就單純地比較day,要是有datediff那該多好。。。