首页 > 解决方案 > mariadb/mysql - 如何使用 sysdate/curdate 创建日期列?

问题描述

我想在我的表中创建一个与 oracle sysdate 变量具有等效功能的列作为默认值。因此,当插入一行时(没有日期,使用当前的 sysdate)。创建此表的查询是什么?我还应该允许此列使用空值,这将如何工作?

另外,我希望能够在该表中插入一行,以便实现该功能。请提供使用此功能的示例插入查询。

此外,我希望能够对 DATETIME 列类型执行相同的操作。

提前致谢。

标签: mysqlsqldatabasemariadb

解决方案


这在文档中得到了很好的解释:

TIMESTAMP 和 DATETIME 列可以自动初始化并更新为当前日期和时间(即当前时间戳)。

语法如下:

create table t (
    . . .,
    createdAt datetime not null default current_timestamp
);

如果您为列提供默认值,那么您不妨将其声明为NOT NULL.

您也可以对更新执行相同的操作:

    updatedAt datetime not null default current_timestamp on update current_timestamp

推荐阅读