首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQLite中设置自动时间戳?

如何在SQLite中设置自动时间戳?
EN

Stack Overflow用户
提问于 2013-01-22 23:17:51
回答 6查看 193.8K关注 0票数 160

我有一个SQLite数据库,版本3,并且我正在使用C#创建一个使用该数据库的应用程序。

我希望在表中使用时间戳字段来实现并发,但我注意到当我插入新记录时,该字段未设置,并且为null。

例如,在MS SQL Server中,如果我使用由数据库更新的时间戳字段,我不必自己设置。这在SQLite中是可能的吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-22 23:40:39

只需为字段声明一个默认值:

代码语言:javascript
复制
CREATE TABLE MyTable(
    ID INTEGER PRIMARY KEY,
    Name TEXT,
    Other STUFF,
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

但是,如果您的INSERT命令将此字段显式设置为NULL,则它将被设置为NULL

票数 250
EN

Stack Overflow用户

发布于 2013-12-17 14:24:46

您可以在SQLite上的表中创建时间戳字段,如下所示:

代码语言:javascript
复制
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');

这就是结果:

代码语言:javascript
复制
SELECT * FROM my_table;

票数 76
EN

Stack Overflow用户

发布于 2017-09-26 14:17:33

读取datefunc自动日期时间补全的工作示例如下:

代码语言:javascript
复制
sqlite> CREATE TABLE 'test' ( 
   ...>    'id' INTEGER PRIMARY KEY,
   ...>    'dt1' DATETIME NOT NULL DEFAULT (datetime(CURRENT_TIMESTAMP, 'localtime')), 
   ...>    'dt2' DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime')), 
   ...>    'dt3' DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%f', 'now', 'localtime'))
   ...> );

让我们以一种启动自动日期时间完成的方式插入一些行:

代码语言:javascript
复制
sqlite> INSERT INTO 'test' ('id') VALUES (null);
sqlite> INSERT INTO 'test' ('id') VALUES (null);

存储的数据清楚地表明前两个函数是相同的,但不是第三个函数:

代码语言:javascript
复制
sqlite> SELECT * FROM 'test';
1|2017-09-26 09:10:08|2017-09-26 09:10:08|2017-09-26 09:10:08.053
2|2017-09-26 09:10:56|2017-09-26 09:10:56|2017-09-26 09:10:56.894

请注意,SQLite函数被括在括号中!在一个例子中展示它有多难?

玩得开心!

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14461851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档