在 MySQL 中使用时间数据类型而不使用秒?

mysqlmysqli database

您需要为此使用 DATE_FORMAT()。语法如下 −

SELECT DATE_FORMAT(yourColumnName,'%k:%i') as anyAliasName FROM yourTableName;

您可以使用 ‘%H:%i’ 获得相同的结果。为了理解上述语法,让我们创建一个表。

创建表的查询如下−

mysql> create table TimeDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> LastLoginTime time
   -> );
Query OK, 0 rows affected (0.56 sec)

现在,您可以使用 insert 命令在表中插入一些记录。查询如下 −

mysql> insert into TimeDemo(LastLoginTime) values('09:30:35');
Query OK, 1 row affected (0.20 sec)
mysql> insert into TimeDemo(LastLoginTime) values('10:45:30');
Query OK, 1 row affected (0.19 sec)
mysql> insert into TimeDemo(LastLoginTime) values('13:33:58');
Query OK, 1 row affected (0.24 sec)
mysql> insert into TimeDemo(LastLoginTime) values('15:45:31');
Query OK, 1 row affected (0.21 sec)
mysql> insert into TimeDemo(LastLoginTime) values('16:40:36');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from TimeDemo;

以下是输出 −

+----+---------------+
| Id | LastLoginTime |
+----+---------------+
|  1 | 09:30:35      |
|  2 | 10:45:30      |
|  3 | 13:33:58      |
|  4 | 15:45:31      |
|  5 | 16:40:36      |
+----+---------------+
5 rows in set (0.00 sec)

这是获取不带秒数的时间的查询。查询如下−

mysql> select DATE_FORMAT(LastLoginTime,'%k:%i') as `Time` from TimeDemo;

以下是输出 −

+-------+
| Time  |
+-------+
| 9:30  |
| 10:45 |
| 13:33 |
| 15:45 |
| 16:40 |
+-------+
5 rows in set (0.00 sec)

您可以更改格式说明符,如 %H:%i,以获得相同的结果,而无需花费秒数。查询如下 −

mysql> select DATE_FORMAT(LastLoginTime,' %H:%i') as `Time` from TimeDemo;

以下是输出 −

+--------+
| Time   |
+--------+
| 09:30  |
| 10:45  |
| 13:33  |
| 15:45  |
| 16:40  |
+--------+
5 rows in set (0.00 sec)

相关文章