如何在MySQL中按AM/PM对时间进行排序?
要在MySQL中按AM/PM对时间进行排序,可以使用ORDER BY STR_TO_DATE()。
以下是语法 −
select yourColumnName from yourTableName ORDER BY STR_TO_DATE(yourColumnName, '%l:%i %p');
让我们先创建一个表 −
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserLogoutTime varchar(200)
);
Query OK, 0 rows affected (0.97 sec)
使用insert命令将记录插入表中 −
mysql> insert into DemoTable(UserLogoutTime) values('09:45 PM');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(UserLogoutTime) values('11:56 AM');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(UserLogoutTime) values('01:01 AM');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(UserLogoutTime) values('02:01 PM');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(UserLogoutTime) values('04:10 PM');
Query OK, 1 row affected (0.15 sec)
使用select命令显示表中的记录 −
mysql> select *from DemoTable;
这将产生以下输出 −
+----+----------------+
| Id | UserLogoutTime |
+----+----------------+
| 1 | 09:45 PM |
| 2 | 11:56 AM |
| 3 | 01:01 AM |
| 4 | 02:01 PM |
| 5 | 04:10 PM |
+----+----------------+
5 rows in set (0.00 sec)
这是在MySQL中按AM/PM排序时间的查询语句 −
mysql> select 从DemoTable中选择UserLogoutTime ORDER BY STR_TO_DATE(UserLogoutTime,'%l:%i %p');
这将产生以下输出 −
+----------------+
| UserLogoutTime |
+----------------+
| 01:01 AM |
| 11:56 AM |
| 02:01 PM |
| 04:10 PM |
| 09:45 PM |
+----------------+
5 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程