我可以在sqlite3中使用默认值创builddate时间列吗?
有没有办法在sqlite3中创build一个date时间列默认为“现在”的表?
以下语句返回语法错误:
create table tbl1(id int primary key, dt datetime default datetime('now'));
更新 :这是Sky Sanders正确的ddl礼貌:
create table tbl1(id int primary key, dt datetime default current_timestamp);
尝试这个:
create table tbl1(id int primary key, dt datetime default current_timestamp);
背景:
DEFAULT约束指定在执行INSERT时使用的默认值。 该值可以是NULL,一个string常量,一个数字或括号内的常量expression式。 默认值也可以是特殊情况下独立关键字CURRENT_TIME,CURRENT_DATE或CURRENT_TIMESTAMP之一。 如果值为NULL(空string常量或数字),则只要执行不指定列值的INSERT语句,就将其插入到列中。 如果值为CURRENT_TIME,CURRENT_DATE或CURRENT_TIMESTAMP,则将当前UTCdate和/或时间插入到列中。 对于CURRENT_TIME,格式是HH:MM:SS。 对于CURRENT_DATE,YYYY-MM-DD。 CURRENT_TIMESTAMP的格式是“YYYY-MM-DD HH:MM:SS”。
... default (datetime(current_timestamp))
下面的default
expression式必须在括号内。 如果您想使用SQLitedate和时间函数或修饰符执行date算术,此表单非常有用。
CURRENT_TIMESTAMP
是一个字面值,就像'mystring'
列约束:
字面值:
您可以使用以下查询在表中使用当前date值
create table tablename (date_field_name Created_on default CURRENT_DATE);