MySQL 如何在MySQL中使用now()在字段中插入当前日期/时间?
在MySQL的表中,经常需要为一个日期/时间类型的字段插入当前时间,以记录数据的创建时间或修改时间等信息。在这种情况下,我们可以使用MySQL提供的now()函数来插入当前日期/时间。
阅读更多:MySQL 教程
NOW() 函数简介
MySQL的NOW()函数是一个日期/时间函数,返回当前的日期和时间。NOW()函数的返回值是一个datetime类型的值,精确到秒。
例如,我们可以使用下面的语句获取当前日期和时间:
SELECT NOW();
输出结果类似于:
2022-05-17 09:11:32
在表中插入当前日期/时间,我们可以使用INSERT INTO语句。接下来我们将通过示例程序学习如何在MySQL中使用now()函数插入当前时间。
示例程序
假设我们有一个名为“employees”的表,用于存储员工的名称和入职时间。
CREATE TABLE employees (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
joined_date DATETIME NOT NULL,
PRIMARY KEY (id)
);
下面的代码将向“employees”表插入一条记录,员工姓名为“John”,入职时间为当前时间(使用now()函数)。
INSERT INTO employees (name, joined_date) VALUES ('John', NOW());
我们可以使用SELECT语句验证插入的数据是否正确:
SELECT * FROM employees;
输出结果如下:
| id | name | joined_date |
|---|---|---|
| 1 | John | 2022-05-17 09:11:32 |
我们可以看到,“John”的入职时间为“2022-05-17 09:11:32”,与now()函数返回的当前时间相同。
TIMESTAMP 和 DATETIME 数据类型的区别
在MySQL中,我们可以使用TIMESTAMP数据类型或DATETIME数据类型来存储日期/时间类型的数据。这两种类型都支持now()函数。
TIMESTAMP类型支持范围更小的时间戳,能够表示的时间范围从1970年1月1日 00:00:01到2038年1月19日 03:14:07,精确到秒。DATETIME类型的值范围更广,可以表示任何日期/时间,精确到秒。
此外,TIMESTAMP类型还具有自动更新的功能。如果将TIMESTAMP类型的字段定义为DEFAULT CURRENT_TIMESTAMP,那么在插入数据时,如果未指定该字段的值,将自动使用当前时间。
可以使用下面的语句创建一个名为“orders”的表,其中包含一个TIMESTAMP类型的创建时间字段:
CREATE TABLE orders (
id INT(11) NOT NULL AUTO_INCREMENT,
order_number VARCHAR(20) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
结论
在MySQL中,可以使用now()函数在字段中插入当前日期/时间。例如,我们可以使用INSERT INTO语句向表中插入数据,并使用now()函数设置字段的值。同时,我们还可以将TIMESTAMP类型的字段定义为DEFAULT CURRENT_TIMESTAMP,以使其自动更新为当前时间。
极客笔记