在sql中存储unix时间戳

时间:2017-01-29 20:00:01

标签: java android sql sqlite unix-timestamp

我有一个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

1 个答案:

答案 0 :(得分:1)

那么,当你将64位Long截断为32位整数时会发生这种情况......

不要这样做,但尝试将其存储(就像它一样长),因为SQLite int可以处理这些值,看看Datatypes In SQLite

enter image description here

编辑:

您的代码如下:

public void add(String image_id, Long date, String path) {
    SQLiteDatabase db = this.getWritableDatabase();
    Log.d("SQL", "date " + date);
}

如果该代码是如此发布,那么您将作为参数 1 传递日期值...方法 this.getWritableDatabase(); 不是要修改/更改日期参数的值......