详解MySQL的NOW()函数:返回当前日期和时间

  • Post category:MySQL

MySQL 的 NOW() 函数的作用是返回当前时间。在 MySQL 中,NOW() 函数会返回当前日期和时间信息,其数据类型为 DATETIME;也可以通过在 NOW() 函数中添加参数来指定要返回的时间格式,例如 DATE, TIME 或 TIMESTAMP。下面是 NOW() 函数的语法格式:

NOW();

具体的使用方法如下:

显示当前时间的日期和时间部分

如果您只想显示当前时间的日期和时间部分,可以使用以下语句:

SELECT NOW();

这将返回当前日期和时间,例如:2021-08-23 14:23:06。

显示当前日期

要显示当前日期,可以在 NOW() 函数中添加 DATE 参数:

SELECT NOW() AS datetime, DATE(NOW()) AS date;

这将返回 datetime 和 date 两个字段,分别代表当前的日期时间和日期。例如:2021-08-23 14:23:06 和 2021-08-23。

显示当前时间

如果您只想显示当前时间的时间部分,可以在 NOW() 函数中添加 TIME 参数:

SELECT NOW() AS datetime, TIME(NOW()) AS time;

这将返回 datetime 和 time 两个字段,分别代表当前的日期时间和时间。例如:2021-08-23 14:23:06 和 14:23:06。

显示当前时间戳

如果您需要显示当前的时间戳,可以在 NOW() 函数中添加 UNIX_TIMESTAMP 参数:

SELECT NOW() AS datetime, UNIX_TIMESTAMP(NOW()) AS timestamp;

这将返回 datetime 和 timestamp 两个字段,分别代表当前的日期时间和对应的时间戳。例如:2021-08-23 14:23:06 和 1629700986。

更新记录时自动记录时间戳

除了用于查询当前时间之外,NOW() 函数还可以用于在更新记录时自动记录时间戳,以便在需要跟踪数据最后修改时间时使用。例如,可以使用以下语句在修改记录时更新时间戳:

UPDATE employees SET last_modified = NOW() WHERE id = 1;

这将会将 id 为 1 的员工记录的最后修改时间更新为当前的日期和时间。

实际应用举例

以下是两个实际应用 NOW() 函数的具体例子:

实例 1:在 web 应用程序中记录数据的创建时间

在大多数 web 应用程序中,用户创建的数据都需要记录创建时间。可以使用以下语句在向数据库中插入新数据时记录创建时间:

INSERT INTO articles (title, content, created_time) VALUES ('MySQL 的 NOW() 函数简介', '这是一段简介', NOW());

这将会给新插入的文章记录一个创建时间,以便稍后查询和跟踪文章的创建时间。

实例 2:在 web 应用程序中记录数据的最后修改时间

在 web 应用程序中,有时需要记录数据的修改时间,以便在用户查看数据时知道数据最后的修改时间。可以使用以下语句来更新修改时间:

UPDATE articles SET content = '这是更新后的内容', modified_time = NOW() WHERE id = 1;

这将会将文章的内容更新为新内容,并在 modified_time 字段中记录最后修改时间。