×

Lấy giờ hiện tại với hàm CURTIME() trong MySQL

Trong MySQL, việc thao tác và tương tác với dữ liệu thời gian diễn ra thường xuyên. Một trong những hàm hữu ích nhất trong lĩnh vực này là hàm CURTIME(). Bài viết sau đây sẽ giải thích cách sử dụng hàm này để lấy thời gian hiện tại trong cơ sở dữ liệu MySQL, cũng như một số ứng dụng thực tế của nó.

Giới thiệu về hàm CURTIME()

CURTIME() là một hàm trong MySQL được sử dụng để trả về giờ hiện tại của hệ thống cơ sở dữ liệu dưới dạng chuỗi hoặc số tại thời điểm truy vấn được thực hiện. Định dạng trả về của hàm này thường là HH:MM:SS cho chuỗi hoặc HHMMSS cho số.

Cú pháp của CURTIME()

Cú pháp của hàm CURTIME() khá đơn giản và không yêu cầu tham số nào:

CURTIME()

Ví dụ, để thực hiện hàm này trong một truy vấn SQL đơn giản, bạn có thể dùng:

SELECT CURTIME();

Kết quả sẽ là thời gian hiện tại ở định dạng HH:MM:SS.

Sử dụng trong các tình huống thực tế

1. Chèn thời gian hiện tại vào bảng

Một trong những ứng dụng phổ biến của CURTIME() là khi bạn cần chèn thời gian hiện tại vào một bảng dữ liệu. Ví dụ, bạn có một bảng activities để lưu các hoạt động của người dùng và bạn muốn lưu giờ hoạt động.

INSERT INTO activities (activity_name, activity_time) 
VALUES ('login', CURTIME());

2. Lọc dữ liệu theo giờ cụ thể

Bạn có thể sử dụng hàm CURTIME() trong các trường hợp lọc dữ liệu, chẳng hạn như lấy ra tất cả các bản ghi được thêm vào sau một thời gian cụ thể trong ngày:

SELECT * FROM activities 
WHERE activity_time > '12:00:00' AND activity_time < CURTIME();

3. Cập nhật giờ hiện tại cho các bản ghi

Nếu bạn cần cập nhật một cột thời gian hiện tại cho tất cả các bản ghi thoả mãn một điều kiện nào đó, bạn có thể sử dụng CURTIME():

UPDATE activities 
SET activity_time = CURTIME() 
WHERE activity_name = 'logout';

So sánh với các hàm khác

Ngoài CURTIME(), MySQL còn cung cấp một số hàm khác liên quan đến thời gian như NOW(), CURRENT_TIMESTAMP(), và CURDATE(). Dưới đây là một so sánh ngắn:

  • NOW(): Trả về cả ngày và giờ hiện tại.
  • CURRENT_TIMESTAMP(): Tương đương với NOW().
  • CURDATE(): Trả về ngày hiện tại mà không có giờ.

Ví dụ:

SELECT NOW(), CURTIME(), CURDATE();

Kết quả có thể là:

+---------------------+----------+------------+
| NOW()               | CURTIME()| CURDATE()  |
+---------------------+----------+------------+
| 2023-10-05 14:58:23 | 14:58:23 | 2023-10-05 |
+---------------------+----------+------------+

Kết luận

Hàm CURTIME() là một công cụ mạnh mẽ và hữu ích trong MySQL để xử lý thời gian hiện tại. Bạn có thể áp dụng nó trong nhiều ngữ cảnh khác nhau từ việc chèn, cập nhật đến lọc dữ liệu dựa trên thời gian. Việc hiểu rõ cách hoạt động và ứng dụng của CURTIME() sẽ giúp bạn thao tác với cơ sở dữ liệu MySQL một cách hiệu quả và chính xác hơn.

Comments