MySQL cung cấp một bộ các hàm xử lý ngày và giờ mạnh mẽ, cho phép bạn làm việc với dữ liệu ngày tháng và thời gian dễ dàng. Dưới đây là danh sách các hàm quan trọng kèm ví dụ minh họa
- Hàm xử lý ngày và giờ mysql
1. Lấy thời gian hiện tại
NOW()
: Trả về ngày giờ hiện tại (bao gồm cả ngày và giờ).SELECT NOW(); -- 2024-11-29 16:30:45
CURDATE()
: Trả về ngày hiện tại (không bao gồm giờ).SELECT CURDATE(); -- 2024-11-29
CURTIME()
: Trả về giờ hiện tại (không bao gồm ngày).SELECT CURTIME(); -- 16:30:45
UTC_TIMESTAMP()
: Trả về ngày giờ hiện tại theo múi giờ UTC.SELECT UTC_TIMESTAMP(); -- 2024-11-29 10:30:45
2. Chuyển đổi và định dạng
DATE_FORMAT(date, format)
: Định dạng ngày theo kiểu tùy chỉnh.SELECT DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s') AS formatted_date; -- 29-11-2024 16:30:45
STR_TO_DATE(string, format)
: Chuyển chuỗi thành kiểuDATE
hoặcDATETIME
.SELECT STR_TO_DATE('29-11-2024 16:30:45', '%d-%m-%Y %H:%i:%s'); -- 2024-11-29 16:30:45
3. Tính toán với ngày tháng
DATE_ADD(date, INTERVAL expr unit)
: Cộng thêm một khoảng thời gian.SELECT DATE_ADD(NOW(), INTERVAL 7 DAY) AS next_week; -- 2024-12-06 16:30:45
DATE_SUB(date, INTERVAL expr unit)
: Trừ đi một khoảng thời gian.SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH) AS last_month; -- 2024-10-29 16:30:45
ADDDATE(date, INTERVAL expr unit)
: Tương tựDATE_ADD
.SUBDATE(date, INTERVAL expr unit)
: Tương tựDATE_SUB
.DATEDIFF(date1, date2)
: Trả về số ngày giữa hai ngày.SELECT DATEDIFF('2024-12-29', '2024-11-29') AS days_difference; -- 30
TIMESTAMPDIFF(unit, datetime1, datetime2)
: Trả về sự khác biệt giữa hai giá trị thời gian, với đơn vị cụ thể.SELECT TIMESTAMPDIFF(HOUR, '2024-11-29 10:00:00', '2024-11-29 16:30:00') AS hours_difference; -- 6
4. Trích xuất thành phần ngày giờ
YEAR(date)
: Lấy năm từ giá trị ngày.SELECT YEAR('2024-11-29'); -- 2024
MONTH(date)
: Lấy tháng từ giá trị ngày.SELECT MONTH('2024-11-29'); -- 11
DAY(date)
/DAYOFMONTH(date)
: Lấy ngày trong tháng.SELECT DAY('2024-11-29'); -- 29
HOUR(time)
: Lấy giờ từ giá trị thời gian.SELECT HOUR('16:30:45'); -- 16
MINUTE(time)
: Lấy phút từ giá trị thời gian.SELECT MINUTE('16:30:45'); -- 30
SECOND(time)
: Lấy giây từ giá trị thời gian.SELECT SECOND('16:30:45'); -- 45
WEEK(date)
: Lấy số tuần trong năm.SELECT WEEK('2024-11-29'); -- 48
DAYOFYEAR(date)
: Lấy ngày thứ mấy trong năm.SELECT DAYOFYEAR('2024-11-29'); -- 334
DAYNAME(date)
: Lấy tên ngày trong tuần.SELECT DAYNAME('2024-11-29'); -- Friday
MONTHNAME(date)
: Lấy tên tháng.SELECT MONTHNAME('2024-11-29'); -- November
5. Chuyển đổi múi giờ
CONVERT_TZ(datetime, from_tz, to_tz)
: Chuyển đổi giá trịDATETIME
sang múi giờ khác.SELECT CONVERT_TZ('2024-11-29 16:30:45', '+00:00', '+07:00') AS converted_time; -- 2024-11-29 23:30:45
6. Các hàm hỗ trợ khác
LAST_DAY(date)
: Trả về ngày cuối cùng của tháng.SELECT LAST_DAY('2024-11-15'); -- 2024-11-30
TO_DAYS(date)
: Chuyển đổi ngày thành số ngày kể từ năm 0.SELECT TO_DAYS('2024-11-29'); -- 738658
FROM_DAYS(days)
: Chuyển đổi số ngày thành ngày tháng.SELECT FROM_DAYS(738658); -- 2024-11-29
UNIX_TIMESTAMP()
: Trả về số giây tính từ Unix Epoch (1970-01-01 00:00:00 UTC).SELECT UNIX_TIMESTAMP('2024-11-29 16:30:45'); -- 1732883445
FROM_UNIXTIME(timestamp)
: Chuyển đổi timestamp thành giá trịDATETIME
.SELECT FROM_UNIXTIME(1732883445); -- 2024-11-29 16:30:45
Kết hợp thực tế
-- Lấy tất cả các bản ghi được tạo trong tháng này:
SELECT *
FROM example_table
WHERE MONTH(created_at) = MONTH(NOW())
AND YEAR(created_at) = YEAR(NOW());
Hãy cho mình biết nếu bạn cần thêm thông tin hoặc ví dụ chi tiết nhé! 😊
Hướng dẫn thiết kế website bằng WordPress
Hướng dẫn thiết kế website bằng WordPress Bước 1: Chọn tên miền và hosting Chọn [...]
Th10
Mẫu Website 2024 tại Bà rịa
[...]
Th8
Thiết Kế Website Bà Rịa
Thiết Kế Website Bà Rịa [...]
Th8