Powered By Blogger

วันอังคารที่ 11 มกราคม พ.ศ. 2554

เขียน SQL คำนวณอายุ จากวันเกิด ด้วย Mysql

เขียน SQL คำนวณอายุ จากวันเกิด ด้วย Mysql, Mssql

ในโปรแกรมที่เก็บวันเดือนปีเกิด บางครั้งเราก็อยากรู้ว่า อายุของวันเดือนปีเกิดนั้น ว่าปัจจุบันอายุเท่าไร มาดูวิธีกันเลย

การหาอายุจากวันเดือนปี เกิด

ถ้าใช้ Mysql ต่ำกว่า 4.1 ก็ลำบากหน่อย เราต้อง query ข้อมูลออกมาแล้วให้ php ช่วยคำนวนต่อ
ถ้าใช้ 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');
ก็จะได้จำนวนปีออกมา
นำไปใช้ได้ผลยังไงมาคุยกันที่บอร์ดนะครับ
ปัญหาการเขียนสอบถามได้ที่บอร์ด


หมายเหตุ: เลือกใช้วิธีเขียน SQL คำนวนอายุจากวันเกิดตามความเหมาะสมนะครับ