Android开发中向SQlite表自动插入当前时间

来源:互联网 发布:swatch知乎 编辑:程序博客网 时间:2024/06/07 06:20

很多时候我们需要记录一个数据项的插入时间,这个时候可以用到SQLite数据库中自带的函数,实现日期时间时间自动插入的功能,下面是我实现的MydatabaseHelper

public class MyDatabaseHelper extends SQLiteOpenHelper {    final String CREATE_SMS_SQL = "create table sms(id integer primary key autoincrement," +            "sms_from," +            "sms_content," +            "sms_datetime TimeStamp NOT NULL DEFAULT CURRENT_TIMESTAMP)";    public MyDatabaseHelper(Context context, String name, int version) {        super(context, name, null, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(CREATE_SMS_SQL);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}

其中主要看的是CREATE_SMS_SQL字符串,这个字符串是一个SQL语句它创建了一个具有4列数据的表,其中第一项是自动增长的id,第二第三项不用管它,第四项才是自动插入时间。但是这还不够,插入的时间并不是本地时间,而是世界时间,想要得到本地时间还需要进行转换才行,可以选择在取出数据的时候转换。也可以改成下面这个样子:

    final String CREATE_SMS_SQL = "create table sms(id integer primary key autoincrement," +            "sms_from," +            "sms_content," +            "sms_datetime TimeStamp NOT NULL DEFAULT(datetime('now','localtime')))";

这样自动插入的时间就是手机的实时时间了。

1 0