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

Truy vấn SELECT định dạng ngày DD/MM/YYYY trong MySQL?

Để định dạng ngày theo kiểu DD/MM/YYYY và sắp xếp theo thứ tự giảm dần, bạn sử dụng hàm STR_TO_DATE trong mệnh đề ORDER BY. Cú pháp như sau:

SELECT * FROM ten_bang WHERE ten_cot_datetime ORDER BY STR_TO_DATE(ten_cot_datetime, '%d/%m/%Y') DESC;

Cú pháp trên sẽ trả về các bản ghi được sắp xếp giảm dần theo ngày. Để hiểu rõ hơn, hãy tạo một bảng ví dụ:

mysql> CREATE TABLE DateFormatWithSelect (
    -> UserId INT,
    -> UserName VARCHAR(100),
    -> UserLoginDatetime VARCHAR(100)
    -> );

Chèn một số dữ liệu mẫu:

mysql> INSERT INTO DateFormatWithSelect VALUES(101,'John','20/10/2016');
mysql> INSERT INTO DateFormatWithSelect VALUES(102,'David','21/09/2015');
mysql> INSERT INTO DateFormatWithSelect VALUES(103,'Carol','21/12/2018');
mysql> INSERT INTO DateFormatWithSelect VALUES(104,'Mike','2/8/2014');
mysql> INSERT INTO DateFormatWithSelect VALUES(105,'Sam','21/11/2017');
mysql> INSERT INTO DateFormatWithSelect VALUES(106,'Bob','21/12/2013');

Hiển thị toàn bộ dữ liệu:

mysql> SELECT * FROM DateFormatWithSelect;

Kết quả:

+--------+----------+-------------------+
| UserId | UserName | UserLoginDatetime |
+--------+----------+-------------------+
|    101 | John     | 20/10/2016        |
|    102 | David    | 21/09/2015        |
|    103 | Carol    | 21/12/2018        |
|    104 | Mike     | 2/8/2014          |
|    105 | Sam      | 21/11/2017        |
|    106 | Bob      | 21/12/2013        |
+--------+----------+-------------------+

Thực hiện truy vấn sắp xếp giảm dần theo định dạng DD/MM/YYYY:

mysql> SELECT * FROM DateFormatWithSelect
    -> ORDER BY STR_TO_DATE(UserLoginDatetime, '%d/%m/%Y') DESC;

Kết quả

+--------+----------+-------------------+
| UserId | UserName | UserLoginDatetime |
+--------+----------+-------------------+
|    103 | Carol    | 21/12/2018        |
|    105 | Sam      | 21/11/2017        |
|    101 | John     | 20/10/2016        |
|    102 | David    | 21/09/2015        |
|    104 | Mike     | 2/8/2014          |
|    106 | Bob      | 21/12/2013        |
+--------+----------+-------------------+

Lưu ý: Cột UserLoginDatetime được lưu dưới dạng chuỗi (VARCHAR), do đó cần chuyển đổi sang kiểu DATE để sắp xếp chính xác. Hàm STR_TO_DATE với định dạng '%d/%m/%Y' xử lý cả ngày/tháng có 1 hoặc 2 chữ số.