জন্ম তারিখ থেকে বয়স (বছর) গণনার পদ্ধতি:
উদাহরণ
mysql> SET @dob = '1984-01-17'; Query OK, 0 rows affected (0.00 sec) mysql> SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(CURDATE()) - TO_DAYS(@dob)), '%Y') + 0 AS 'Age in years'; +---------------+ | Age in years | +---------------+ | 33 | +---------------+
ব্যাখ্যা
TO_DAYS(@dob): জন্ম তারিখকে দিনের সংখ্যায় রূপান্তর (দিন ০ থেকে গণনা)।TO_DAYS(CURDATE()): আজকের তারিখকে দিনের সংখ্যায় রূপান্তর।- বিয়োগ: মোট দিনের পার্থক্য।
FROM_DAYS(...): দিনের পার্থক্যকে তারিখ অবজেক্টে রূপান্তর (০০০০-০০-০০ থেকে গণনা)।DATE_FORMAT(..., '%Y'): সেসব দিনের বছর অংশ বের করা (যা বয়স)।+ 0: স্ট্রিংকে সংখ্যায় রূপান্তর।
সহজ বিকল্প (MySQL 8.0+)
SELECT TIMESTAMPDIFF(YEAR, @dob, CURDATE()) AS age;
TIMESTAMPDIFF(YEAR, start, end) সরাসরি পূর্ণ বছরের পার্থক্য দেয়, যা আরও সহজ ও পঠনযোগ্য।