如何在MySQL中按AM/PM对时间进行排序?

如何在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 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程