在 sql 中存储 unix 时间戳
Storing unix timestamp in sql
我有一个 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
如果我尝试将其存储为 long,那么
localDB.add(image_id, unixTimestamp, PATH);
然后在我的添加方法中(在 SQLiteHelper 中 class)。我打印测试值:
public void add(String image_id, Long date, String path) {
SQLiteDatabase db = this.getWritableDatabase();
Log.d("SQL", "date " + date);
它打印 1
D/SQL: date 1
嗯,这就是将 64 位 Long 截断为 32 位整数时会发生的情况...
不要那样做,但尽量按原样存储它(尽可能长),因为 SQLite 整数可以处理这些值,请查看 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 (); 不会modify/change 日期参数的值...
我有一个 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
如果我尝试将其存储为 long,那么
localDB.add(image_id, unixTimestamp, PATH);
然后在我的添加方法中(在 SQLiteHelper 中 class)。我打印测试值:
public void add(String image_id, Long date, String path) {
SQLiteDatabase db = this.getWritableDatabase();
Log.d("SQL", "date " + date);
它打印 1
D/SQL: date 1
嗯,这就是将 64 位 Long 截断为 32 位整数时会发生的情况...
不要那样做,但尽量按原样存储它(尽可能长),因为 SQLite 整数可以处理这些值,请查看 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 (); 不会modify/change 日期参数的值...