क्या SQLite में लंबी टाइप है?


जवाबों:


220

से SQLite डॉक्स

पूर्णांक । मान एक हस्ताक्षरित पूर्णांक है, जो मूल्य के परिमाण के आधार पर 1, 2, 3, 4, 6, या 8 बाइट्स में संग्रहीत है।

चूंकि long8 बाइट है और 8 बाइट के INTEGERमूल्यों को भी बचा सकता है, आप उपयोग कर सकते हैं INTEGER


1
i 1549251913000 इनपुट करें और इसे SQLite से प्राप्त करते समय बेमेल
नंद Z

कृपया जांचें कि क्या आप गलती से इसे टाइप कर रहे हैं int, सुनिश्चित करें कि आप लंबे समय तक उपयोग कर रहे हैं।
इंदर कुमार राठौर

20

स्तंभ को एक 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);

15

मुझे नहीं लगता कि टाइप लंबा है। या तो आप INTEGER (या) न्यूमेरिक का उपयोग कर सकते हैं। यहाँ समर्थित डेटा प्रकारों के साथ लिंक है http://www.sqlite.org/datatype3.html


5

आप सिर्फ एक प्रकार से पूर्णांक प्रकार को परिभाषित करते हैं। SQLite आपके इनपुट के आधार पर कॉलम की लंबाई 1,2,4,8 पर सेट करता है।


4

3

SQLIte सेट करेगा उपयुक्त पूर्णांक चौड़ाई आपके इनपुट पर निर्भर करती है


0

पूर्णांक स्टोर कर सकते हैं लंबे समय तक लेकिन से लंबे समय से प्राप्त करने के लिए कर्सर इस तरह करना चाहिए:

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 में टाइमस्टैम्प को स्टोर करने के लिए करता हूँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.