Android之SQLite存取DATETIME類型

在android的sqlite中存取DATETIME類型的方法。

      創建表時:

String sql="create table tb3(idINTEGER PRIMARY KEY,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, weight DOUBLE)";    
 
 timestamp字段缺省值是當前時間(基於GMT而不是local time)。這問題導致了記錄的時間跟本地實際時間有幾個小時的差距,費了我好大工夫才找到解決方法: 存的時候不變,取的時候根據自己所在時區調整時間。這是sqlite中的一個函數datetime所做的工作。

     讀取時的方法:

Cursor cursor = db.rawQuery("selectweight,datetime(timestamp,'localtime') from tb3",null);
String myDate =cursor.getString(cursor.getColumnIndex("datetime(timestamp,'localtime')"));
SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = format.parse(myDate);

     插入數據時,由於timestamp和id能自動生成,只需插入體重數據:

ContentValues values=newContentValues();   

double nowWeight = Double.parseDouble(weightStr);  

values.put("weight", nowWeight);   

db = sqlHelper.getWritableDatabase();  

db.insert("tb3"null,values);   

db.close();  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章