MySQL 如何在MySQL表格的一个列中自动插入当前日期?

MySQL 如何在MySQL表格的一个列中自动插入当前日期?

在日常的数据库应用中,经常需要在某个列中自动插入当前日期,比如在记录某个操作时间的列中自动记录当前时间,这时我们可以使用MySQL中的函数来实现这一功能。

阅读更多:MySQL 教程

时间函数

MySQL提供了多个时间函数,我们在这里使用其中的NOW()函数来获取当前日期和时间。NOW()函数返回一个具有DATETIME数据类型的值,这个值包含了当前日期和时间。

列类型

在将日期插入到MySQL表格中时,我们需要注意目标列的数据类型,如果目标列的数据类型不是DATETIME类型,我们就不能直接将NOW()函数返回的时间插入到目标列中,否则会提示数据类型不匹配的错误。

下面是常用的日期与时间类型(Type):

Type Description
DATE 日期类型,值的表示范围为 ‘1000-01-01’ 到 ‘9999-12-31’
TIME 时间类型,值的表示范围为 ‘-838:59:59’ 到 ‘838:59:59’
DATETIME 日期和时间类型,值的表示范围为 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIMESTAMP 时间戳类型,值的表示范围为 1970年1月1日以来的秒数,使用 4 字节存储,范围 ‘-2147483648’ 到 ‘2147483647’
YEAR 年份类型,值的表示范围为 ‘1901’ 到 ‘2155’,或 ‘0000’

如果想要使用NOW()函数自动插入当前日期和时间,目标列的数据类型必须是DATE,DATETIMETIMESTAMP类型。下面是一个students表格的定义:

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `birthday` date DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在INSERT语句中使用NOW()函数

在向上述定义的students表格中插入数据时,我们可以使用NOW()函数来获取当前时间,并自动将时间插入到create_time列中,示例代码如下:

INSERT INTO `students`(`name`,`gender`,`birthday`,`create_time`)
VALUES('张三','男','2007-11-22',NOW());

在UPDATE语句中使用NOW()函数

在更新students表格中某一行的数据时,我们同样可以使用NOW()函数来获取当前时间,并自动将时间插入到create_time列中,示例代码如下:

UPDATE `students`
SET `birthday`='2008-12-12',`create_time`=NOW()
WHERE `id`=1;

结论

以上就是在MySQL表格中自动插入当前日期和时间的方法,我们可以使用NOW()函数来获取当前时间,但是需要注意目标列的数据类型必须是DATE,DATETIMETIMESTAMP类型,否则会提示数据类型不匹配的错误。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程