sqlite
जानकारी का प्रकार
खोज…
टिप्पणियों
आधिकारिक दस्तावेज़ीकरण: डेटाटाइप्स इन SQLite संस्करण 3
TYPEOF फ़ंक्शन
sqlite> SELECT TYPEOF(NULL);
null
sqlite> SELECT TYPEOF(42);
integer
sqlite> SELECT TYPEOF(3.141592653589793);
real
sqlite> SELECT TYPEOF('Hello, world!');
text
sqlite> SELECT TYPEOF(X'0123456789ABCDEF');
blob
बूलियन का उपयोग करना
बूलियन्स के लिए, SQLite पूर्णांक 0 और 1 का उपयोग करता है:
sqlite> SELECT 2 + 2 = 4;
1
sqlite> SELECT 'a' = 'b';
0
sqlite> SELECT typeof('a' = 'b');
integer
> CREATE TABLE Users ( Name, IsAdmin );
> INSERT INTO Users VALUES ('root', 1);
> INSERT INTO Users VALUES ('john', 0);
> SELECT Name FROM Users WHERE IsAdmin;
root
स्तंभ प्रकार लागू करना
SQLite डायनामिक टाइपिंग का उपयोग करता है और घोषित कॉलम प्रकारों की उपेक्षा करता है:
> CREATE TABLE Test (
Col1 INTEGER,
Col2 VARCHAR(2), -- length is ignored, too
Col3 BLOB,
Col4, -- no type required
Col5 FLUFFY BUNNIES -- use whatever you want
);
> INSERT INTO Test VALUES (1, 1, 1, 1, 1);
> INSERT INTO Test VALUES ('xxx', 'xxx', 'xxx', 'xxx', 'xxx');
> SELECT * FROM Test;
1 1 1 1 1
xxx xxx xxx xxx xxx
(हालांकि, घोषित स्तंभ प्रकार का उपयोग आत्मीयता के लिए किया जाता है।)
प्रकारों को लागू करने के लिए, आपको टाइपोफ़ () फ़ंक्शन के साथ एक बाधा जोड़ना होगा:
CREATE TABLE Tab (
Col1 TEXT CHECK (typeof(Col1) = 'text' AND length(Col1) <= 10),
[...]
);
(यदि इस तरह का एक स्तंभ फुल होना चाहिए, तो आपको स्पष्ट रूप से 'null' अनुमति देनी होगी।)
दिनांक / समय प्रकार
SQLite में दिनांक या समय मानों के लिए कोई अलग डेटा प्रकार नहीं है।
ISO8601 तार
अंतर्निहित कीवर्ड CURRENT_DATE , CURRENT_TIME , और CURRENT_TIMESTAMP ISO8601 प्रारूप में लौटें:
> SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
------------ ------------ -------------------
2016-07-08 12:34:56 2016-07-08 12:34:56
इस तरह के मूल्यों को सभी अंतर्निहित तारीख / समय के कार्यों से भी समझा जाता है:
> SELECT strftime('%Y', '2016-07-08');
2016
जूलियन दिन संख्या
अंतर्निहित तिथि / समय फ़ंक्शन जूलियन दिनों के रूप में संख्याओं की व्याख्या करते हैं:
> SELECT datetime(2457578.02425926);
2016-07-08 12:34:56
julianday() फ़ंक्शन जूलियन डे नंबर में किसी भी समर्थित दिनांक / समय मान को परिवर्तित करता है:
> SELECT julianday('2016-07-08 12:34:56');
2457578.02425926
यूनिक्स टाइमस्टैम्प
अंतर्निहित तिथि / समय कार्य यूनिक्स unixepoch संशोधक के साथ यूनिक्स टाइमस्टैम्प के रूप में संख्याओं की व्याख्या कर सकते हैं:
> SELECT datetime(0, 'unixepoch');
1970-01-01 00:00:00
strftime() फ़ंक्शन किसी भी समर्थित दिनांक / समय मान को यूनिक्स टाइमस्टैम्प में बदल सकता है:
> SELECT strftime('%s', '2016-07-08 12:34:56');
1467981296
असमर्थित प्रारूप
डेटाबेस में किसी अन्य प्रारूप में दिनांक / समय मान संग्रहीत करना संभव होगा, लेकिन अंतर्निहित दिनांक / समय फ़ंक्शन उन्हें पार्स नहीं करेंगे, और NULL लौटाएंगे:
> SELECT time('1:30:00'); -- not two digits
> SELECT datetime('8 Jul 2016');