Để lấy Tuổi bằng cột Ngày sinh trong truy vấn MySQL, bạn có thể sử dụng dateiff (). Đầu tiên chúng ta hãy tạo một bảng:
mysql> tạo bảng DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, DateOfBirth date); Truy vấn OK, 0 hàng bị ảnh hưởng (1,46 giây)
Sau đây là truy vấn để chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert:
mysql> chèn vào các giá trị DemoTable (DateOfBirth) ('2010-01-21'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable (DateOfBirth) ('1993-04-02'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị DemoTable (DateOfBirth) ('1999-12-01'); Truy vấn OK, 1 hàng bị ảnh hưởng (1,53 giây) mysql> chèn vào giá trị DemoTable (DateOfBirth) ( '1998-11-16'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào các giá trị DemoTable (DateOfBirth) ('2004-03-19'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây)Sau đây là truy vấn để hiển thị các bản ghi từ bảng bằng lệnh select:
mysql> select * từ DemoTable;Điều này sẽ tạo ra kết quả sau:
+ ---- + ------------- + | Id | DateOfBirth | + ---- + ------------- + | 1 | 2010-01-21 || 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 || 5 | 2004-03-19 | + ---- + ------------- + 5 hàng trong bộ (0,00 giây)Bây giờ chúng ta hãy lấy Tuổi bằng cột ngày sinh với phương thức DATEDIFF ():
mysql> chọn cast (DATEDIFF (curdate (), DateOfBirth) / 365,25 AS UNSIGNED) AS AGE từ DemoTable;Điều này sẽ tạo ra kết quả sau:
+ ------ + | TUỔI | + ------ + | 9 || 26 || 19 || 20 || 15 | + ------ + 5 hàng trong bộ (0,00 giây)Bây giờ chúng ta hãy viết một truy vấn để lấy DOB và ID trong đó Tuổi từ 20 đến 26:
mysql> SELECT * FROM DemoTable WHERE NĂM (CURDATE ()) - YEAR (DateOfBirth) GIỮA 20 VÀ 26;Điều này sẽ tạo ra kết quả sau:
+ ---- + ------------- + | Id | DateOfBirth | + ---- + ------------- + | 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 | + ---- + ------------- + 3 hàng trong bộ (0,00 giây)