我有一个long
格式的unix日期
Long tmpLong = (Long) local.getValue();
这是tmpLong的值
1485710457166
现在我想将这个变量存储在我的SQLite数据库中,经过一些研究后我发现你不能在SQLite中存储Longs,所以我尝试了这个:
Long tmpLong = (Long) local.getValue();
Integer tmpInt = tmpLong.intValue();
但是这给了我:
-348227250
在SQLite中,我的数据类型为INTEGER
我需要帮助存储此unix号码,任何帮助表示赞赏
更新1
如果我尝试将它存储为长,那么
localDB.add(image_id, unixTimestamp, PATH);
然后在我的add方法中(在SQLiteHelper类中)。我打印测试值:
public void add(String image_id, Long date, String path) {
SQLiteDatabase db = this.getWritableDatabase();
Log.d("SQL", "date " + date);
打印1
D / SQL:日期1
答案 0 :(得分:1)
那么,当你将64位Long截断为32位整数时会发生这种情况......
不要这样做,但尝试将其存储(就像它一样长),因为SQLite int可以处理这些值,看看Datatypes In SQLite
您的代码如下:
public void add(String image_id, Long date, String path) {
SQLiteDatabase db = this.getWritableDatabase();
Log.d("SQL", "date " + date);
}
如果该代码是如此发布,那么您将作为参数 1 传递日期值...方法 this.getWritableDatabase(); 不是要修改/更改日期参数的值......