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

Truy vấn MySQL lấy ngày sinh viên trong khoảng độ tuổi 20-21

Sử dụng toán tử BETWEEN kết hợp với hàm YEAR() và NOW() để lọc sinh viên theo độ tuổi.

Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable863(StudentDateOfBirth DATE); 
Query OK, 0 rows affected (0.56 sec)

mysql> INSERT INTO DemoTable863 VALUES('1998-01-10'); 
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable863 VALUES('2000-10-15'); 
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable863 VALUES('2003-04-20'); 
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable863 VALUES('2005-12-31'); 
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable863 VALUES('1999-07-01'); 
Query OK, 1 row affected (0.27 sec)

Truy vấn lọc độ tuổi 20-21

mysql> SELECT * FROM DemoTable863 
WHERE (YEAR(NOW()) - YEAR(StudentDateOfBirth)) BETWEEN 20 AND 21;

Kết quả (giả sử năm hiện tại là 2019):

+--------------------+
| StudentDateOfBirth |
+--------------------+
| 1998-01-10         |
| 1999-07-01         |
+--------------------+
2 rows in set (0.03 sec)

Lưu ý quan trọng: Cách tính tuổi này chỉ dựa trên năm, chưa xét tháng/ngày. Để chính xác hơn, hãy dùng:

SELECT * FROM DemoTable863 
WHERE TIMESTAMPDIFF(YEAR, StudentDateOfBirth, CURDATE()) BETWEEN 20 AND 21;