c# - SQLite में स्वचालित टाइमस्टैम्प कैसे करें?




timestamp (4)

मेरे पास एक SQLite डेटाबेस है, संस्करण 3 और मैं इस डेटाबेस का उपयोग करने वाले एप्लिकेशन को बनाने के लिए C # का उपयोग कर रहा हूं।

मैं समेकन के लिए तालिका में एक टाइमस्टैम्प फ़ील्ड का उपयोग करना चाहता हूं, लेकिन मुझे लगता है कि जब मैं एक नया रिकॉर्ड डालता हूं, तो यह फ़ील्ड सेट नहीं होता है, और शून्य है।

उदाहरण के लिए, एमएस एसक्यूएल सर्वर में यदि मैं टाइमस्टैम्प फ़ील्ड का उपयोग करता हूं तो यह डेटाबेस द्वारा अपडेट किया जाता है, मुझे अपने आप को सेट नहीं करना है। क्या यह SQLite में संभव है?


आप SQLite पर तालिका में TIMESTAMP फ़ील्ड बना सकते हैं, इसे देखें:

CREATE TABLE my_table (
    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    name VARCHAR(64),
    sqltime TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
);

INSERT INTO my_table(name, sqltime) VALUES('test1', '2010-05-28T15:36:56.200');
INSERT INTO my_table(name, sqltime) VALUES('test2', '2010-08-28T13:40:02.200');
INSERT INTO my_table(name) VALUES('test3');

यह परिणाम है:

SELECT * FROM my_table;


आप कस्टम डेटाटाइम का उपयोग करके उपयोग कर सकते हैं ...

 create table noteTable3 
 (created_at DATETIME DEFAULT (STRFTIME('%d-%m-%Y   %H:%M', 'NOW','localtime')),
 title text not null, myNotes text not null);

वर्तमान सिस्टम दिनांक प्राप्त करने के लिए 'अब', 'लोकलटाइम' का उपयोग करें, अन्यथा यह आपके डीबी में सम्मिलन समय के बाद आपके डेटाबेस में कुछ अतीत या अन्य समय दिखाएगा।

धन्यवाद...


उपरोक्त उत्तरों के पूरक के लिए ...

यदि आप ईएफ का उपयोग कर रहे हैं, तो डेटा एनोटेशन [टाइमस्टैम्प] के साथ संपत्ति को सजाने के लिए, फिर अपने संदर्भ वर्ग के अंदर ओवरराइड ऑनमोडेल क्रिएटिंग पर जाएं, और इस फ़्लुएंट एपीआई कोड को जोड़ें:

modelBuilder.Entity<YourEntity>()
                .Property(b => b.Timestamp)
                .ValueGeneratedOnAddOrUpdate()
                .IsConcurrencyToken()
                .ForSqliteHasDefaultValueSql("CURRENT_TIMESTAMP");

यह इस डेटा में डाले जाने वाले प्रत्येक डेटा के लिए डिफ़ॉल्ट मान देगा।


बस किसी फ़ील्ड के लिए डिफ़ॉल्ट मान घोषित करें:

CREATE TABLE MyTable(
    ID INTEGER PRIMARY KEY,
    Name TEXT,
    Other STUFF,
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

हालांकि, यदि आपका INSERT कमांड स्पष्ट रूप से इस फ़ील्ड को NULL सेट करता NULL , तो यह पूर्ण पर सेट हो जाएगा।






timestamp