SQLite에 Long 유형이 있습니까? 유형을 사용하여

Long대신 열 유형을 사용하여 테이블을 만들고 싶습니다 Integer. 가능할까요?



답변

로부터 SQLite는 워드 프로세서

INTEGER . 값은 부호있는 정수이며 값의 크기에 따라 1, 2, 3, 4, 6 또는 8 바이트로 저장됩니다.

이후로는 long8 바이트이며, INTEGER또한 8 바이트의 값을 저장, 당신은 사용할 수 있습니다 INTEGER.


답변

열을 INTEGER유형 으로 작성하십시오 .

db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
                + KEY + " INTEGER" + ")");

long값을 INTEGER열에 넣으십시오 .

contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);

중요 : 커서에서 값을 다음과 같이 검색합니다 .LONG

Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);


답변

나는 유형이 길다고 생각하지 않습니다. INTEGER (또는) 숫자를 사용할 수 있습니다. 다음은 지원되는 데이터 유형 http://www.sqlite.org/datatype3.html 링크입니다 .


답변

정수 유형으로 열을 정의하기 만하면됩니다. SQLite는 입력에 따라 열 길이를 1,2,4,8로 설정합니다.


답변

그의 위 링크는 64 비트 정수 또는 본질적으로 long을 나타냅니다. 또한 int, integer, bigint 등과 같은 SQLite 정수 데이터 유형의 차이점무엇입니까? 를 참조하십시오
.


Android에서 사용되는 SQLite 버전?


답변

SQLIte는 입력에 따라 적절한 정수 너비를 설정합니다.


답변

정수 를 저장할 수 하지만에서 긴 얻기 위해 커서를 다음과 같이해야한다 :

int type = cursor.getType(j);

String value = cursor.getString(j);
try {
       int intValue = Integer.parseInt(value);
       field.set(object, intValue);
    } catch (NumberFormatException e) {
       long longValue = Long.parseLong(value);
       field.set(object, longValue);
}

나는 이것을 사용 하여 sqlite에 타임 스탬프 를 저장합니다.