乐闻世界logo
搜索文章和话题

如何创建默认值为“now”的时间戳列?

4 个月前提问
4 个月前修改
浏览次数18

1个答案

1

要在数据库中创建一个默认值为当前时间的时间戳列,我们可以根据所使用的数据库系统(如 MySQL, PostgreSQL, SQL Server 等)使用不同的语法。以下是一些常见数据库系统如何创建这样的列的方法:

MySQL

在 MySQL 中,你可以使用 CURRENT_TIMESTAMP 函数来设置默认值。比如说,如果你正在创建一个新表,可以这样定义列:

sql
CREATE TABLE events ( id INT AUTO_INCREMENT, event_name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) );

在这个例子中,created_at 列会自动使用创建记录时的时间戳作为默认值。

PostgreSQL

在 PostgreSQL 中,同样使用 CURRENT_TIMESTAMP,定义方式与 MySQL 类似:

sql
CREATE TABLE events ( id SERIAL PRIMARY KEY, event_name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

SQL Server

在 SQL Server 中,你可以使用 GETDATE() 函数来获取当前时间:

sql
CREATE TABLE events ( id INT IDENTITY(1,1) PRIMARY KEY, event_name NVARCHAR(255), created_at DATETIME DEFAULT GETDATE() );

Oracle

Oracle 数据库使用 SYSDATE 来获取当前日期和时间:

sql
CREATE TABLE events ( id NUMBER GENERATED BY DEFAULT AS IDENTITY, event_name NVARCHAR2(255), created_at DATE DEFAULT SYSDATE );

这些例子都创建了一个名为 events 的表,其中包含一个 created_at 时间戳列,该列的默认值设置为当前时间。这样,每当向表中插入新行时,如果没有为 created_at 指定具体值,系统就会自动插入当前时间作为默认值。这对于记录事件发生的时间非常有用。

2024年8月14日 14:10 回复

你的答案