Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Gọi hàm NOW() để lấy bản ghi ngày hiện tại trong MySQL

Tạo bảng demo

mysql> create table DemoTable (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ShippingDate datetime
    -> );
Query OK, 0 rows affected (1.16 sec)

Chèn dữ liệu (giả sử ngày hiện tại là "2019-06-28")

mysql> insert into DemoTable(ShippingDate) values('2019-01-31');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-06-06');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-06-28');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-07-01');
Query OK, 1 row affected (0.16 sec)

Hiển thị tất cả bản ghi

mysql> select * from DemoTable;

Kết quả

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 1  | 2019-01-31 00:00:00 |
| 2  | 2019-06-06 00:00:00 |
| 3  | 2019-06-28 00:00:00 |
| 4  | 2019-07-01 00:00:00 |
+----+---------------------+
4 rows in set (0.00 sec)

Truy vấn lấy bản ghi ngày hiện tại dùng NOW()

mysql> select * from DemoTable where DATE(ShippingDate) = DATE(NOW());

Kết quả - Chỉ bản ghi ngày 2019-06-28

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 3  | 2019-06-28 00:00:00 |
+----+---------------------+
1 row in set (0.00 sec)

Giải thích:

  • NOW(): Trả về ngày giờ hiện tại của server (datetime).
  • DATE(): Trích xuất phần ngày từ datetime.
  • So sánh DATE(cot) = DATE(NOW()) đảm bảo so sánh chỉ phần ngày, bỏ qua giờ phút giây.

Thay thế: Có thể dùng CURDATE() thay vì DATE(NOW()) để lấy ngày hiện tại không có phần thời gian.