作者SmallBeeWayn (喵喵叫的蜜蜂猫)
看板Database
标题[SQL ] MySQL计算岁数
时间Wed May 6 10:44:31 2009
MySQL 5.1 + PHP 5.2.9-2
计算法1:
SQL : YEAR(NOW()-birth)
PHP : if($pOld>1999) $pOld=$pOld-2000;
if($pOld>999) $pOld=$pOld-1900;
先用MySQL算出年差
再从MySQL的YEAR函数原本 00-69 => 2000-2069
70-99 => 1970-1999
回算回二位数数字
看起来语法很简单, 可是实际上可能出问题
一方面这个语法只能用到2069
另一方面是当这个值丢给YEAR时是从1970年起算, 会有闰年的差
计算法2:
(YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
这是我目前网路上查到最精简的计算方法,精度已经到日了
计算法3:
(YEAR(CURDATE())-YEAR(birth)) - (SUBSTRING(NOW(),6)<SUBSTRING(birth,6))
自己改的, 精度可以到秒
计算法4:
FLOOR((NOW()-birth)/10000000000)
利用MySQL时间计算的特性
可是这样有考虑到大小月闰年吗?
==================================
想问的是.....难道这麽基本的问题....还得自己写程式码来算吗....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.180.163
※ 编辑: SmallBeeWayn 来自: 122.116.180.163 (05/06 10:52)
1F:推 KC73:有时候问题的关键不是「能不能做」,而是「该不该做」。 05/08 22:31