我可以在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”。

来自http://www.sqlite.org/lang_createtable.html

 ... default (datetime(current_timestamp)) 

下面的defaultexpression式必须在括号内。 如果您想使用SQLitedate和时间函数或修饰符执行date算术,此表单非常有用。

CURRENT_TIMESTAMP是一个字面值,就像'mystring'

列约束:

在这里输入图像说明

字面值:

在这里输入图像说明

您可以使用以下查询在表中使用当前date值

 create table tablename (date_field_name Created_on default CURRENT_DATE);