×

Lấy dấu thời gian hiện tại với hàm LOCALTIMESTAMP() trong MySQL

Trong lập trình cơ sở dữ liệu với MySQL, việc lấy dấu thời gian hiện tại là một yêu cầu phổ biến, đặc biệt khi bạn cần tạo bản ghi với thời gian chính xác khi dữ liệu được thêm vào, hoặc cập nhật thông tin. MySQL cung cấp nhiều hàm để thực hiện điều này, trong đó hàm LOCALTIMESTAMP() là một trong những lựa chọn hiệu quả và dễ sử dụng.

Giới thiệu về LOCALTIMESTAMP()

LOCALTIMESTAMP() là một hàm trong MySQL để lấy thời gian của hệ thống hiện tại. Hàm này trả về một giá trị với định dạng DATETIME, phản ánh thời gian thực tại thời điểm truy vấn được thực thi. Điều này rất hữu ích cho việc lưu dấu thời gian của các sự kiện hoặc giao dịch trong cơ sở dữ liệu.

Sử dụng LOCALTIMESTAMP() trong Truy vấn

Cú pháp của LOCALTIMESTAMP() rất đơn giản và có thể được sử dụng trực tiếp trong các câu truy vấn SQL. Dưới đây là một ví dụ cơ bản về cách sử dụng hàm này:

SELECT LOCALTIMESTAMP();

Kết quả trả về sẽ hiển thị thời gian hiện tại từ hệ thống cơ sở dữ liệu.

Sử dụng LOCALTIMESTAMP() trong Bảng

Một trong những ứng dụng phổ biến của LOCALTIMESTAMP() là thêm dấu thời gian vào một bảng khi chèn dữ liệu mới. Điều này giúp theo dõi chính xác khi nào dữ liệu được tạo ra. Ví dụ dưới đây minh họa cách sử dụng LOCALTIMESTAMP() trong câu lệnh INSERT:

INSERT INTO du_lieu_nguoi_dung (ten, email, ngay_tao)
VALUES ('Nguyen Van A', 'avnguyen@example.com', LOCALTIMESTAMP());

Cột ngay_tao trong bảng du_lieu_nguoi_dung sẽ được tự động cập nhật với thời gian hiện tại khi bản ghi được chèn vào.

Tự Động Cập Nhật Dấu Thời Gian

Để tự động cập nhật dấu thời gian khi bản ghi được sửa đổi, bạn có thể kết hợp LOCALTIMESTAMP() với các triggers trong MySQL. Triggers là các khối mã được thực hiện tự động khi một sự kiện cụ thể xảy ra trên một bảng.

Ví dụ, bạn có thể tạo một trigger để cập nhật dấu thời gian mỗi khi một bản ghi trong bảng du_lieu_nguoi_dung được cập nhật:

CREATE TRIGGER before_update_du_lieu_nguoi_dung
BEFORE UPDATE
ON du_lieu_nguoi_dung FOR EACH ROW
SET NEW.ngay_cap_nhat = LOCALTIMESTAMP();

Với trigger này, cột ngay_cap_nhat sẽ tự động được cập nhật với thời gian hiện tại mỗi khi có bản ghi trong bảng du_lieu_nguoi_dung bị chỉnh sửa.

So sánh LOCALTIMESTAMP() và CURRENT_TIMESTAMP()

Cả LOCALTIMESTAMP() và CURRENT_TIMESTAMP() đều được sử dụng để lấy thời gian hiện tại, nhưng có một số khác biệt chính giữa chúng. CURRENT_TIMESTAMP() trả về thời gian hiện tại cùng với múi giờ UTC, trong khi LOCALTIMESTAMP() trả về thời gian hiện tại dựa trên múi giờ của máy chủ cơ sở dữ liệu. Tùy thuộc vào yêu cầu của ứng dụng, bạn có thể chọn sử dụng một trong hai hàm này.

Kết Luận

LOCALTIMESTAMP() là một công cụ mạnh mẽ và tiện lợi trong MySQL để lấy thời gian hiện tại của hệ thống. Việc sử dụng nó đúng cách góp phần tạo ra các ứng dụng và hệ thống cơ sở dữ liệu linh hoạt và chính xác hơn. Khi kết hợp với các câu lệnh SQL khác như INSERT, UPDATE và triggers, hàm này không chỉ giúp theo dõi thời gian mà còn tự động hóa các quy trình quản lý dữ liệu, nâng cao hiệu suất và độ tin cậy của hệ thống cơ sở dữ liệu của bạn.

Comments