Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฉันสามารถรับอายุโดยใช้คอลัมน์ BirthDate ในแบบสอบถาม MySQL ได้หรือไม่


ในการรับอายุโดยใช้คอลัมน์ BirthDate ในแบบสอบถาม MySQL คุณสามารถใช้ datediff() ให้เราสร้างตารางก่อน:

mysql> สร้างตาราง DemoTable ( Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, DateOfBirth date); เคียวรีตกลง 0 แถวได้รับผลกระทบ (1.46 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก:

mysql> แทรกลงในค่า DemoTable(DateOfBirth) ('2010-01-21'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable (DateOfBirth) ('1993-04-02');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable (DateOfBirth) ('1999-12-01'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (1.53 วินาที) mysql> แทรกลงในค่า DemoTable (DateOfBirth) ( '1998-11-16');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า DemoTable (DateOfBirth) ('2004-03-19'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.11 วินาที) 

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนจากตารางโดยใช้คำสั่ง select:

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้:

<ก่อนหน้า>+----+-------------+| รหัส | วันเกิด |+----+-------------+| 1 | 2010-01-21 || 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 || 5 | 2004-03-19 |+----+-------------+5 แถวในชุด (0.00 วินาที)

ให้เราได้อายุโดยใช้คอลัมน์วันเกิดด้วยเมธอด DATEDIFF():

mysql> เลือก cast(DATEDIFF(curdate(),DateOfBirth) / 365.25 AS UNSIGNED) AS AGE จาก DemoTable

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้:

<ก่อนหน้า>+------+| อายุ |+------+| 9 || 26 || 19 || 20 || 15 |+------+5 แถวในชุด (0.00 วินาที)

ให้เราเขียนแบบสอบถามเพื่อรับ DOB และ ID โดยที่อายุอยู่ระหว่าง 20 ถึง 26:

mysql> SELECT *FROM DemoTable WHERE YEAR(CURDATE())-YEAR(DateOfBirth)BETWEEN 20 AND 26;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้:

<ก่อนหน้า>+----+-------------+| รหัส | วันเกิด |+----+-------------+| 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 |+----+-------------+3 แถวในชุด (0.00 วินาที)