CREATE TABLE MyTable(
ID INTEGER PRIMARY KEY,
Name TEXT,
Other STUFF,
Timestamp DATETIME);
CREATE TRIGGER insert_Timestamp_Trigger
AFTER INSERT ON MyTable
BEGIN
UPDATE MyTable SET Timestamp =STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;
END;
CREATE TRIGGER update_Timestamp_Trigger
AFTER UPDATE On MyTable
BEGIN
UPDATE MyTable SET Timestamp = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;
END;
7条答案
按热度按时间yebdmbv41#
只需为字段声明一个默认值:
但是,如果
INSERT
命令将此字段显式设置为NULL
,则它将被设置为NULL
。1tu0hz3e2#
您可以在SQLite上的表中创建TIMESTAMP字段,请参见:
这就是结果:
njthzxwz3#
读取datefunc时,自动日期时间完成的工作示例如下:
让我们以启动自动日期时间完成的方式插入一些行:
存储的数据清楚地显示前两个功能相同,但第三个功能不同:
注意SQLite函数是用圆括号括起来的!在一个例子中显示它有多困难?
好好玩!
vwkv1x7d4#
你可以使用触发器,效果很好
omjgkv6w5#
为了补充上述答案...
如果您使用的是EF,请使用Data Annotation [Timestamp]修饰属性,然后转到上下文类中被覆盖的OnModelCreating,并添加以下Fluent API代码:
它将为要插入到该表中每个数据设置默认值。
hpxqektj6#
您可以使用自定义日期时间,方法是使用...
使用'NOW','localtime'获取当前系统日期,否则它将在您的数据库中显示插入时间之后的某个过去或其他时间。
谢谢你。
suzh9iv87#
如果使用SQLite数据库浏览器,则可以通过以下方式更改默认值:
1.选择数据库结构
1.选择表格
1.修改表
1.在您的列中,将值置于“默认值”下:***=(日期时间(“现在”,“本地时间”))***
我建议您在更新数据库之前,因为错误的值格式可能会导致SQLLite浏览器出现问题。