Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sắp xếp theo timestamp dạng chuỗi trong MySQL với STR_TO_DATE

Khi cột timestamp lưu dưới dạng chuỗi (VARCHAR) với định dạng phức tạp, dùng STR_TO_DATE() trong ORDER BY để parse thành DATETIME rồi sắp xếp.

Tạo bảng và dữ liệu timestamp chuỗi

mysql> CREATE TABLE DemoTable (`timestamp` VARCHAR(100));
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable VALUES('06/22/2019 01:10:20 PM'), ('06/22/2019 12:00:27 PM'), ('06/22/2019 06:56:20 AM'), ('06/22/2019 07:10:11 AM');
Query OK, 4 rows affected (0.13 sec)

Truy vấn sắp xếp theo thời gian thực

mysql> SELECT * FROM DemoTable ORDER BY STR_TO_DATE(`timestamp`, '%m/%d/%Y%h:%i:%s %p');

Kết quả (theo thứ tự thời gian thực):

+------------------------+
| timestamp              |
+------------------------+
| 06/22/2019 06:56:20 AM |
| 06/22/2019 07:10:11 AM |
| 06/22/2019 12:00:27 PM |
| 06/22/2019 01:10:20 PM |
+------------------------+
4 rows in set (0.00 sec)

Format specifiers:

  • %m: tháng (01-12)
  • %d: ngày (01-31)
  • %Y: năm 4 chữ số
  • %h: giờ 12h (01-12)
  • %i: phút
  • %s: giây
  • %p: AM/PM