SQLite current_timestamp
函数
SQLite current_timestamp
函数可以返回格式为 YYYY-MM-DD HH:MM:SS
的 UTC 当前日期和时间
默认时间戳
在 Rails快速起步 中,使用Rails的models对象创建的 tweets
默认就添加了 created_at
和 updated_at
字段,而且当使用Rails的model对象操作时,无需手工指定时间戳就能够自动添加当前时间。
但是,需要注意到,如果同样使用 sqlite3
交互命令插入数据库记录,则 created_at
和 updated_at
是需要人为提供时间戳的,否则会提示错误:
在数据库表插入数据时没有提供
created_at
和 updated_at
insert into tweets(title,body) values("Love Rails","I love Rails, because I love program");
此时报错:
在数据库表插入数据时没有提供
created_at
和 updated_at
报错信息Error: NOT NULL constraint failed: tweets.created_at
此时解决方法是使用 CURRENT_TIMESTAMP
:
插入时提供当前时间戳
insert into tweets(title,body,created_at,updated_at) values("Love Rails","I love Rails, because I love program",CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);
数据库表默认时间戳
要避免手工插入 CURRENT_TIMESTAMP
,可以修订数据库表,增加默认时间戳为 CURRENT_TIMESTAMP
备注
怎么修订列添加默认值?等我再学习一下 SQL
一个案例:
创建表的时间字段可以添加默认current_timestamp
CREATE TABLE notes(
id INTEGER PRIMARY KEY,
note TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT current_timestamp,
updated_at TEXT NOT NULL DEFAULT current_timestamp
);