เขียน SQL คำนวณอายุ จากวันเกิด ด้วย Mysql, Mssql
ในโปรแกรมที่เก็บวันเดือนปีเกิด บางครั้งเราก็อยากรู้ว่า อายุของวันเดือนปีเกิดนั้น ว่าปัจจุบันอายุเท่าไร มาดูวิธีกันเลย
การหาอายุจากวันเดือนปี เกิด
ถ้าใช้ Mysql ต่ำกว่า 4.1 ก็ลำบากหน่อย เราต้อง query ข้อมูลออกมาแล้วให้ php ช่วยคำนวนต่อ
- ถ้า php ที่ใช้ ต่ำกว่า 5.3 ก็ต้องเขียน function ขึ้นมาใช้เอง ลองดูในเว็บบอร์ดนี้ได้ครับ
- ถ้า ใช้ php 5.3 ก็สามารถใช้ function ที่ php 5.3 มีให้เลย
ถ้าใช้ Mysql 4.1 หรือสูงกว่า การคำนวนอายุทำได้ง่ายดังนี้
ตามตัวอย่าง เมื่อ dob คือ field เก็บวันเดือนปีเกิด member คือชื่อตาราง
แบบแรก
SELECT DATE_FORMAT( NOW( ) , '%Y' ) - DATE_FORMAT( dob, '%Y' ) - ( DATE_FORMAT( NOW( ) , '00-%m-%d' ) < DATE_FORMAT( dob, '00-%m-%d' ) ) AS age
FROM member
แบบที่สอง
SELECT YEAR( FROM_DAYS( DATEDIFF( NOW( ) , dob ) ) )
FROM `member`
สำหรับ Mssql ทำได้ง่ายกว่า Mysql ใน Mssql สามารถใช้
Function DATEDIFF(datepart,startdate,endate)
ตัวย่าง
DATEDIFF(year,'2000-01-30','2001-07-30');
ก็จะได้จำนวนปีออกมา
นำไปใช้ได้ผลยังไงมาคุยกันที่บอร์ดนะครับ
ปัญหาการเขียนสอบถามได้ที่บอร์ด