MySQL 日期列如何自动填充当前日期?


您可以使用 now() 函数与默认自动填充功能,并获取当前日期和时间。稍后,您可以使用 date() 函数提取日期部分。

案例 1

语法如下所示

yourDateColumnName date default ‘yourDateValue’;

案例 2

语法如下所示

yourDateColumnName datetime default now();

为了理解以上内容,让我们创建一个表。创建表的查询如下所示

mysql> create table DefaultCurrentdateDemo
   -> (
   -> LoginDate datetime default now()
   -> );
Query OK, 0 rows affected (0.59 sec)

使用 insert 命令在表中插入一些记录。查询如下所示

mysql> insert into DefaultCurrentdateDemo values();
Query OK, 1 row affected (0.18 sec)

mysql> insert into DefaultCurrentdateDemo values('2017-11-19');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DefaultCurrentdateDemo values('2018-10-21');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DefaultCurrentdateDemo values();
Query OK, 1 row affected (0.23 sec)

mysql> insert into DefaultCurrentdateDemo values('2020-12-24');
Query OK, 1 row affected (0.12 sec)

使用 select 语句显示表中的所有记录。查询如下所示

mysql> select *from DefaultCurrentdateDemo;

以下是输出结果

+---------------------+
| LoginDate |
+---------------------+
| 2019-01-12 20:33:51 |
| 2017-11-19 00:00:00 |
| 2018-10-21 00:00:00 |
| 2019-01-12 20:34:37 |
| 2020-12-24 00:00:00 |
+---------------------+
5 rows in set (0.00 sec)

如果您只想提取日期,则可以使用 date() 方法。查询如下所示

mysql> select date(LoginDate) as OnlyDate from DefaultCurrentdateDemo;

以下是输出结果

+------------+
| OnlyDate |
+------------+
| 2019-01-12 |
| 2017-11-19 |
| 2018-10-21 |
| 2019-01-12 |
| 2020-12-24 |
+------------+
5 rows in set (0.00 sec)

让我们将默认值设置为某个日期。

为日期列设置默认值的查询如下所示

mysql> create table DefaultDate
   -> (
   -> LoginDate date default '2019-01-12'
   -> );
Query OK, 0 rows affected (0.53 sec)

如果您没有向该列传递任何值,则会向该列提供默认值。插入记录的查询如下所示

mysql> insert into DefaultDate values();
Query OK, 1 row affected (0.13 sec)

使用 select 语句显示表中的所有记录。

查询如下所示

mysql> select *from DefaultDate;

以下是输出结果

+------------+
| LoginDate  |
+------------+
| 2019-01-12 |
+------------+
1 row in set (0.00 sec)

更新于: 2019年7月30日

14K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告