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

Hiển thị ngày distinct (loại trùng) từ cột datetime MySQL

Để lấy các ngày duy nhất (bỏ qua phần giờ/phút/giây) từ cột DATETIME, bạn dùng DISTINCT trực tiếp trên cột datetime (so sánh toàn bộ timestamp) hoặc kết hợp DATE() nếu chỉ so sánh ngày.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable ( 
    AdmissionDate datetime 
);

Chèn dữ liệu (có trùng lặp hoàn toàn timestamp):

mysql> insert into DemoTable values('2010-01-10 12:30:45');
mysql> insert into DemoTable values('2010-01-10 12:30:45');
mysql> insert into DemoTable values('2010-01-10 12:30:45');
mysql> insert into DemoTable values('2010-01-12 12:30:45');
mysql> insert into DemoTable values('2010-01-20 12:30:45');
mysql> insert into DemoTable values('2010-01-20 12:30:45');

Hiển thị dữ liệu gốc (6 hàng):

mysql> select * from DemoTable;

Kết quả:

+---------------------+
| AdmissionDate       |
+---------------------+
| 2010-01-10 12:30:45 |
| 2010-01-10 12:30:45 |
| 2010-01-10 12:30:45 |
| 2010-01-12 12:30:45 |
| 2010-01-20 12:30:45 |
| 2010-01-20 12:30:45 |
+---------------------+

Truy vấn DISTINCT trên cột datetime

mysql> select distinct AdmissionDate from DemoTable;

Kết quả (3 giá trị datetime duy nhất):

+---------------------+
| AdmissionDate       |
+---------------------+
| 2010-01-10 12:30:45 |
| 2010-01-12 12:30:45 |
| 2010-01-20 12:30:45 |
+---------------------+

Giải thích: DISTINCT so sánh toàn bộ giá trị datetime (kể cả giờ phút giây). Nếu cùng ngày nhưng khác giờ, vẫn được coi là khác nhau.

Nếu chỉ muốn distinct theo NGÀY (bỏ qua giờ):

mysql> select distinct DATE(AdmissionDate) from DemoTable;

Kết quả: 2010-01-10, 2010-01-12, 2010-01-20 (chỉ phần ngày).