如何在SQLite中插入Date类型的数据

时间:2013-04-20 21:26:48

标签: android sqlite date

我想在类型为Date而不是字符串的表中插入日期(因为我必须稍后对其进行排序)。我不能使用内容值的函数put(),因为它只接受(String,String)参数,而不是日期。那么如何在表格行中插入系统的当前日期?请帮忙。

 public long createEntry (String name, String db_dr, int amount, Date dt){
            ContentValues values = new ContentValues ();``
            values.put(DbOpenHelper.ENTRY_NAME,  name );
            values.put(DbOpenHelper.DR_CR, db_dr );
            values.put(DbOpenHelper.ENTRY_AMOUNT, amount);
            values.put(DbOpenHelper.DATE, dt); // function put defined for (string, string)
            long insertid= database.insert(DbOpenHelper.TABLE_ENTRIES, null, values);
            return insertid;
        }

2 个答案:

答案 0 :(得分:0)

SQLite doesn't support a Date datatype。相反,你可以做的是将日期存储在Unix时间。如果日期存储在Calendar中,请使用getTimeInMillis,例如。

答案 1 :(得分:0)

您可以将日期插入英里秒。正如您的评论所说,您可以使用milis存储日期并面临问题以进行检索并将其转换为日期。这是一个例子

    Calendar calendar = new GregorianCalendar();
    calendar.setTimeInMillis(date_in_milis);
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int date = calendar.get(Calendar.DATE);
    int day = calendar.get(Calendar.DAY_OF_WEEK);

它会将年,月,日和日设为整数。因此,如果您想获得月/日名称,通过一些计算,您可以格式化为字符串。