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

Sắp xếp theo DATE rồi TIME trong MySQL

Tóm tắt

Dùng ORDER BY cot_date, cot_time để sắp xếp trước theo ngày, sau đó theo giờ trong cùng ngày.

Ví dụ

1. Tạo bảng

CREATE TABLE OrderByDateThenTimeDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ShippingDate DATE,
    ShippingTime TIME
);

2. Dữ liệu (2 hàng cùng ngày 2018-01-24, giờ khác nhau)

INSERT INTO OrderByDateThenTimeDemo (ShippingDate, ShippingTime) VALUES
('2018-01-24', '16:45:40'),
('2018-01-24', '15:30:35'),
('2018-04-25', '14:20:25'),
('2019-02-14', '18:07:55'),
('2019-01-31', '20:20:30');

3. Sắp xếp

SELECT * FROM OrderByDateThenTimeDemo ORDER BY ShippingDate, ShippingTime;

4. Kết quả

+----+--------------+--------------+
| Id | ShippingDate | ShippingTime |
+----+--------------+--------------+
| 2  | 2018-01-24   | 15:30:35     |
| 1  | 2018-01-24   | 16:45:40     |
| 3  | 2018-04-25   | 14:20:25     |
| 5  | 2019-01-31   | 20:20:30     |
| 4  | 2019-02-14   | 18:07:55     |
+----+--------------+--------------+

Ngày 2018-01-24: 15:30:35 đứng trước 16:45:40.

Mẹo

  • Nếu cột là DATETIME duy nhất: ORDER BY cot_datetime tự sắp cả ngày và giờ.
  • Tách DATE/TIME chỉ khi cần thiết (legacy, tối ưu index riêng).
  • Index composite (ShippingDate, ShippingTime) phục vụ ORDER BY tốt.
  • DESC cho một cột: ORDER BY ShippingDate ASC, ShippingTime DESC.