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

Chuyển đổi DATETIME sang DATE trong MySQL


Sử dụng hàm CAST() hoặc DATE() để lấy phần ngày từ cột DATETIME/TIMESTAMP.

Cú pháp

-- Cách 1: CAST
SELECT CAST(datetime_column AS DATE) AS date_only FROM table_name;

-- Cách 2: DATE() - ngắn gọn hơn
SELECT DATE(datetime_column) AS date_only FROM table_name;

Ví dụ minh họa

mysql> CREATE TABLE ConvertDateTimeToDate (ArrivalDatetime DATETIME);
Query OK, 0 rows affected (0.37 sec)

mysql> INSERT INTO ConvertDateTimeToDate VALUES
(DATE_ADD(NOW(), INTERVAL -1 YEAR)),
('2017-11-21 13:10:20'),
('2016-05-24 21:11:24'),
('2012-04-30 04:05:50');
Query OK, 4 rows affected

Kiểm tra dữ liệu gốc:

+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2017-12-27 10:05:21 |
| 2017-11-21 13:10:20 |
| 2016-05-24 21:11:24 |
| 2012-04-30 04:05:50 |
+---------------------+

Chuyển đổi:

mysql> SELECT CAST(ArrivalDatetime AS DATE) AS Date 
FROM ConvertDateTimeToDate;

Kết quả:

+------------+
| Date       |
+------------+
| 2017-12-27 |
| 2017-11-21 |
| 2016-05-24 |
| 2012-04-30 |
+------------+

So sánh CAST() vs DATE()

Hàm Ưu điểm Nhược điểm
CAST(x AS DATE) Chuẩn SQL, rõ ràng ý định ép kiểu Dài hơn
DATE(x) Ngắn gọn, dễ đọc, tối ưu cho MySQL Chỉ dành cho MySQL

Khuyến nghị

Dùng DATE() cho code MySQL thuần túy. Dùng CAST() nếu cần code tương thích đa nền tảng.