Computer >> Máy Tính >  >> Lập trình >> MySQL

Định dạng ngày MySQL DD / MM / YYYY chọn truy vấn?

Định dạng ngày DD / MM / YYYY bằng cách sử dụng chọn và sắp xếp theo thứ tự giảm dần. Cú pháp như sau -

SELECT *FROM yourTableName
where yourDatetimeColumnName order by
STR_TO_DATE(yourDatetimeColumnName,’%d/%m%Y’) desc;

Cú pháp trên sẽ cung cấp ngày theo thứ tự giảm dần. Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table DateFormatWithSelect
   -> (
   -> UserId int,
   -> UserName varchar(100),
   -> UserLoginDatetime varchar(100)
   -> );
Query OK, 0 rows affected (0.58 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into DateFormatWithSelect values(101,'John','20/10/2016');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DateFormatWithSelect values(102,'David','21/09/2015');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DateFormatWithSelect values(103,'Carol','21/12/2018');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DateFormatWithSelect values(104,'Mike','2/8/2014');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DateFormatWithSelect values(105,'Sam','21/11/2017');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DateFormatWithSelect values(106,'Bob','21/12/2013');
Query OK, 1 row affected (0.18 sec)

Hiển thị tất cả các bản ghi từ bảng bằng lệnh select. Truy vấn như sau -

mysql> select *from DateFormatWithSelect;

Sau đây là outpu -

+--------+----------+-------------------+
| 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        |
+--------+----------+-------------------+
6 rows in set (0.00 sec)

Đây là CHỌN định dạng ngày ở định dạng DD / MM / YYYY -

mysql> select *from DateFormatWithSelect
   -> where UserLoginDatetime order by str_to_date(UserLoginDatetime,'%d/%m/%Y') desc;

Đầu ra

+--------+----------+-------------------+
| 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        |
+--------+----------+-------------------+
6 rows in set, 6 warnings (0.00 sec)