Trong MySQL, CAST(cot AS DATE) và DATE(cot) hoàn toàn tương đương – cả hai đều gọi nội bộ Item_date_typecast để trích xuất phần ngày từ DATETIME hoặc TIMESTAMP.
Cú pháp
-- Cách 1: CAST
SELECT CAST(cot_datetime AS DATE) AS only_date FROM ten_bang;
-- Cách 2: DATE() - ngắn gọn hơn
SELECT DATE(cot_datetime) AS only_date FROM ten_bang;
Ví dụ minh họa
Tạo bảng CastAsDateDemo:
CREATE TABLE CastAsDateDemo (
Id INT NOT NULL AUTO_INCREMENT,
ArrivalTime DATETIME,
PRIMARY KEY (Id)
);
INSERT INTO CastAsDateDemo (ArrivalTime) VALUES
('2014-01-13 13:45:46'), ('2016-04-11 10:30:31'),
('2019-01-09 19:17:49'), (DATE_ADD(NOW(), INTERVAL 2 DAY));
Kết quả CAST
SELECT CAST(ArrivalTime AS DATE) AS only_Date FROM CastAsDateDemo;
+------------+
| only_Date |
+------------+
| 2014-01-13 |
| 2016-04-11 |
| 2019-01-09 |
| 2019-01-11 |
+------------+
Kết quả DATE()
SELECT DATE(ArrivalTime) AS only_Date FROM CastAsDateDemo;
+------------+
| only_Date |
+------------+
| 2014-01-13 |
| 2016-04-11 |
| 2019-01-09 |
| 2019-01-11 |
+------------+
Kết luận: Hai cách cho kết quả y hệt. Nên dùng DATE() vì ngắn gọn, dễ đọc, chuẩn SQL hơn.