06/04/2021, 14:50

Cách lấy ngày hiện tại trong MySQL - MySQL nâng cao

Trong bài này mình sẽ hướng dẫn cách lấy ngày giờ hiện tại trong MySQL bằng cách sử dụng các hàm build-in function có sẵn trong thư viện của MySQL. 1. Lấy ngày hiện tại bằng build-in function Thỉnh thoảng bạn muốn lấy ngày giờ hiện tại trong MySQL để phục vụ cho mội tính năng nào đó của phần ...

Trong bài này mình sẽ hướng dẫn cách lấy ngày giờ hiện tại trong MySQL bằng cách sử dụng các hàm build-in function có sẵn trong thư viện của MySQL.

1. Lấy ngày hiện tại bằng build-in function

Thỉnh thoảng bạn muốn lấy ngày giờ hiện tại trong MySQL để phục vụ cho mội tính năng nào đó của phần mềm. Ví dụ bạn làm web tin tức là có tính năng hẹn giờ đăng bài, bạn sẽ truy vấn những bài nào có ngày đăng bé hơn hoặc bằng ngày hiện tai.

Lúc này một là bạn truyền giá trị ngày hiện tại vào, hai là dùng các hàm lấy ngày giờ trong MySQL.

CURDATE()

Hàm CURDATE() sẽ trả vè ngày hiện tại trong hệ thống server. Hãy xem ví dụ dưới đây.

mysql> SELECT CURDATE() today;
+------------+
| today      |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)

Hoặc bạn có thể sử dụng hàm now() như cách dưới đây.

Kế hợp DATE() và NOW()

Bạn sẽ dùng hàm now() để lấy ngày giờ hiện tại định dạng milisecond kiểu số nguyên, sau đó đặt nó trong hàm date() để trả về ngày hiện tại.

mysql> SELECT DATE(NOW()) today;
+------------+
| today      |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)

2. Tự tạo Store Procedure lấy ngày hiện tại

Thực tế thì cách này ít người sử dụng bởi nó tốn quá nhiều thời gian. Tuy nhiên nếu bạn thích vọc vạch MySQL thì hãy thử xem sao nhé.

Mình sẽ tạo một store procedure function có tên là today.

DELIMITER $$
CREATE FUNCTION today()
RETURNS DATE
BEGIN
RETURN CURDATE();
END$$
DELIMITER ;

Bây giờ bạn có thể thực hiện truy vấn và sử dụng hàm đó một cách bình thường.

mysql> SELECT today();
+------------+
| today()    |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)

Lấy ngày mai thì sao, bạn chỉ việc cộng nó lên 1 day là được.

mysql> SELECT today() + interval 1 day as Tomorrow;
+------------+
| Tomorrow   |
+------------+
| 2017-07-09 |
+------------+
1 row in set (0.00 sec)

Tương tự, để lấy ngày hôm qua thì ta trừ nó đi 1 day.

mysql> SELECT today() - interval 1 day Yesterday;
+------------+
| Yesterday  |
+------------+
| 2017-07-07 |
+------------+
1 row in set (0.00 sec)

Như vậy là mình đã hướng dẫn xong cách lấy ngày hiện tại trong MySQL bằng hai cách, thứ nhất là sử dụng các hàm có sẵn như CURDATE, kết hợp DATE và NOW, thứ hai là sử dụng store function trong MySQL để tạo hàm sử dụng chung.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0