Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

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)

삽입 명령을 사용하여 테이블에 레코드 삽입 -

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)