Sử dụng CURDATE() hoặc DATE(NOW()) để lấy ngày hiện tại dạng YYYY-MM-DD.
Cách 1: CURDATE()
mysql> SELECT CURDATE();
+------------+ | CURDATE() | +------------+ | 2019-04-09 | +------------+
Cách 2: DATE(NOW())
mysql> SELECT DATE(NOW());
+-------------+ | DATE(NOW()) | +-------------+ | 2019-04-09 | +-------------+
So sánh các hàm thời gian
| Hàm | Trả về | Kiểu dữ liệu | Múi giờ |
|---|---|---|---|
CURDATE() | Ngày hiện tại | DATE | Session timezone |
CURRENT_DATE() | Ngày hiện tại (chuẩn SQL) | DATE | Session timezone |
NOW() | Ngày giờ hiện tại | DATETIME | Session timezone |
CURRENT_TIMESTAMP() | Ngày giờ hiện tại (chuẩn SQL) | DATETIME | Session timezone |
UTC_DATE() | Ngày UTC | DATE | UTC |
UTC_TIMESTAMP() | Ngày giờ UTC | DATETIME | UTC |
Định dạng tùy chỉnh
SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y'); -- 09/04/2019 SELECT DATE_FORMAT(CURDATE(), '%W, %M %d, %Y'); -- Tuesday, April 09, 2019
Lưu ý
CURDATE()ổn định trong một statement (trả về cùng giá trị)NOW()cũng ổn định trong một statement- Tránh dùng
SYSDATE()nếu cần consistency (trả về thời điểm thực thi thực tế)