Trong quá trình phát triển và quản lý cơ sở dữ liệu, việc lấy thông tin thời gian hiện tại là một thao tác vô cùng quan trọng. Một trong những hàm được sử dụng rộng rãi để thực hiện điều này trong MySQL là hàm NOW()
. Hàm NOW()
cho phép người dùng lấy thời gian hiện tại của hệ thống dưới dạng một chuỗi ký tự. Nội dung bài viết này sẽ hướng dẫn chi tiết về cách sử dụng hàm NOW()
trong MySQL, cùng với một số ví dụ minh họa cụ thể.
Cú pháp của hàm NOW()
Cú pháp của hàm NOW()
trong MySQL rất đơn giản và dễ nhớ:
SELECT NOW();
Hàm này không yêu cầu bất kỳ tham số nào và sẽ trả về thời điểm hiện tại theo định dạng YYYY-MM-DD HH:MM:SS
.
Sử dụng hàm NOW()
trong các truy vấn
Lấy thời gian hiện tại
Để lấy thời gian hiện tại của hệ thống, bạn chỉ cần thực hiện truy vấn sau:
SELECT NOW();
Kết quả trả về sẽ giống như sau:
2023-10-04 12:34:56
Kết quả này thể hiện ngày tháng năm và giờ phút giây tại thời điểm thực hiện truy vấn.
Sử dụng trong câu lệnh INSERT
Hàm NOW()
thường được sử dụng khi cần chèn dữ liệu mới vào bảng và ghi lại thời gian của sự kiện. Ví dụ:
INSERT INTO orders (order_id, product_name, order_date)
VALUES (1, 'Laptop', NOW());
Trong câu lệnh này, cột order_date
sẽ tự động được điền vào thời gian hiện tại khi thực hiện truy vấn.
Sử dụng trong câu lệnh UPDATE
Hàm NOW()
cũng được sử dụng để cập nhật giá trị của một cột thời gian trong bảng. Ví dụ:
UPDATE orders
SET order_date = NOW()
WHERE order_id = 1;
Câu lệnh này sẽ cập nhật giá trị của cột order_date
với thời gian hiện tại cho dòng có order_id
là 1.
Lưu ý về múi giờ
Hàm NOW()
lấy thời gian hiện tại dựa trên múi giờ của hệ thống MySQL. Để kiểm tra múi giờ bạn có thể sử dụng lệnh sau:
SHOW VARIABLES LIKE 'time_zone';
Nếu bạn cần thay đổi múi giờ của hệ thống, bạn có thể cấu hình lại trong file my.cnf hoặc thực hiện các lệnh sau:
SET GLOBAL time_zone = '+00:00';
SET time_zone = '+00:00';
Sự khác biệt giữa hàm NOW()
, CURDATE()
và CURTIME()
NOW()
: Trả về thời gian hiện tại theo định dạngYYYY-MM-DD HH:MM:SS
.CURDATE()
: Trả về ngày hiện tại theo định dạngYYYY-MM-DD
, không có thông tin giờ.CURTIME()
: Chỉ trả về giờ hiện tại theo định dạngHH:MM:SS
.
Ví dụ:
SELECT NOW(), CURDATE(), CURTIME();
Kết quả có thể như sau:
2023-10-04 12:34:56, 2023-10-04, 12:34:56
Kết luận
Hàm NOW()
trong MySQL là một công cụ hữu ích và cần thiết khi làm việc với dữ liệu liên quan đến thời gian. Nó hỗ trợ nhiều tác vụ từ đơn giản như lấy thời gian hiện tại, đến phức tạp hơn như chèn hoặc cập nhật thông tin thời gian trong cơ sở dữ liệu. Hiểu rõ và sử dụng thành thạo hàm NOW()
sẽ giúp tối ưu hóa công việc và quản lý cơ sở dữ liệu một cách hiệu quả hơn.
Comments