Page 1 of 1

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

Posted: Thu Sep 01, 2022 5:06 am
by Teeranai
อาจารย์ครับถ้าผมต้องการหาอายุจากวันเกิดโดยแยกว่าตอนนี้ผมอายุกี่ปี กี่เดือน กี่วัน ผมเกิด 09/10/1984
Int(DateDiff("m",[BrihtDay],Now())/12)
DateDiff("m",[BrihtDay],Now()) Mod 12)
DateDiff("m",[BrihtDay],Now()) Mod 30)
ผมใช้สูตรนี้แต่ผลลัพธ์ออกมาได้ 37 ปี 11 เดือน 23 วัน แต่ถ้าผมหาอายุใน Excel อายุผมได้ 37 ปี 10 เดือน 23 วัน
ต้องใช้สูตรอะไรในการหาครับ

Re: การหาอายุจากวันเกิด

Posted: Thu Sep 01, 2022 8:16 am
by snasui
:D DateDif ใน Excel เมื่อเทียบกับการคำนวณมือใน Access ย่อมไม่เท่ากันอยู่แล้วครับ แม้ Datedif ใน Excel เมื่อเป็นคนละ Version ก็ยังให้ผลลัพธ์ที่แตกต่างกันครับ

การแสดงผลออกมา วัน เดือน ปี ให้ออกมาอยู่ใน Field เดียวกันเป็นการคำนวณแบบคร่าว ๆ เท่านั้น สาเหตุจากจำนวนวันในเดือนก.พ.ที่แตกต่างกัน การใช้ 360 หรือ 365 เป็นตัวหารเพื่อหาค่าปี ใช้ 30 เป็นตัวหารเพื่อหาค่าเดือนจึงมีความคลาดเคลื่อนครับ

Re: การหาอายุจากวันเกิด

Posted: Fri Sep 02, 2022 6:48 am
by Teeranai
ถ้าต้องการหาอายุที่ถูกต้อง ผมต้องเขียนสูตรอย่างไรครับใน Access

Re: การหาอายุจากวันเกิด

Posted: Fri Sep 02, 2022 6:53 am
by snasui
:D หากให้แสดง ปี เดือน วัน ใน Field เดียวกัน ไม่มีที่ถูกต้องดังที่อธิบายแล้ว มีแต่ตรงกับที่อยากเห็นหรือไม่เท่านั้นครับ

แต่ถ้าหากหาจำนวนวันตั้งแต่วันเริ่มต้นถึงวันสิ้นสุดจะได้ที่ถูกต้องเสมอ ค่อยนำค่านี้ไปจัดการต่อเพื่อให้แสดงออกมาเป็น ปี เดือน วันได้

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

Re: การหาอายุจากวันเกิด

Posted: Fri Sep 02, 2022 7:22 am
by Teeranai
อาจารย์ครับผมขอสูตรหา ปี เดือน วัน โดยการแยก Field ที่ไม่ใช่ค่าประมาณ พอจะมีไหมครับ

Re: การหาอายุจากวันเกิด

Posted: Fri Sep 02, 2022 7:27 am
by snasui
:D Access มีฟังก์ชัน Datediff เพื่อหาผลต่างแบบปี เดือน วันให้อยู่แล้วครับ

แต่สิ่งที่ต้องการคือจะหาผลลัพธ์ให้แสดงออกมาเป็นความคิดแบบคน คือ อายุกี่ปี เดือน วัน เช่นนี้จะได้ค่าโดยประมาณ เพราะหลักการคิดเดียวกัน ไม่ใช่คิดแบบสิ่งที่ Access เตรียมไว้ให้ครับ

Re: การหาอายุจากวันเกิด

Posted: Fri Sep 02, 2022 7:36 am
by Teeranai
ขอบคุณครับ