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

mysqlmysqli database更新于 2025/10/19 10:20:17

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

mysql> create table DemoTable662(
   UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,UserName varchar(100),UserPostDate datetime
);
Query OK, 0 rows affected (0.50 sec)

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

mysql> alter table DemoTable662 MODIFY COLUMN UserPostDate TIMESTAMP NOT NULL DEFAULT current_timestamp;
Query OK, 0 rows affected (1.81 sec)
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)

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

mysql> insert into DemoTable662(UserName) values('Chris');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable662(UserName) values('Robert');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable662(UserName,UserPostDate) values('Robert','2018-01-11');
Query OK, 1 row affected (0.27 sec)

使用 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)

相关文章


有用资源