对于时间戳,MySQL中使用哪种数据类型?

TIMESTAMP数据类型用于包含日期和时间部分的值。让我们首先创建一个表-

mysql> create table DemoTable662(
   UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,UserName varchar(100),UserPostDate datetime
);

以下是有效的默认时间戳值的查询-

mysql> alter table DemoTable662 MODIFY COLUMN UserPostDate TIMESTAMP NOT NULL DEFAULT current_timestamp;
Records: 0 Duplicates: 0 Warnings: 0

让我们再次检查表的描述-

mysql> desc DemoTable662;

这将产生以下输出-

+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| UserId       | int(11)      | NO   | PRI | NULL              | auto_increment |
| UserName     | varchar(100) | YES  |     | NULL              |                |
| UserPostDate | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+
3 rows in set (0.10 sec)

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable662(UserName) values('Chris');
mysql> insert into DemoTable662(UserName) values('Robert');
mysql> insert into DemoTable662(UserName,UserPostDate) values('Robert','2018-01-11');

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

mysql> select *from DemoTable662;

这将产生以下输出-

+--------+----------+---------------------+
| UserId | UserName | UserPostDate        |
+--------+----------+---------------------+
| 1      | Chris    | 2019-07-20 13:06:13 |
| 2      | Robert   | 2019-07-20 13:06:18 |
| 3      | Robert   | 2018-01-11 00:00:00 |
+--------+----------+---------------------+
3 rows in set (0.00 sec)