如何在 MySQL 中按 AM/PM 對時間進行排序?


要在 MySQL 中按 AM/PM 對時間排序,你可用 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 UserLogoutTime from DemoTable 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)

更新於: 30-7-2019

2K+ 瀏覽

開啟 職業生涯

透過完成本課程並獲得認證

開始
廣告
© . All rights reserved.