将mysql中的日期值转换为age

时间:2013-08-26 02:54:39

标签: php mysql date dob

我在数据库中有一个名为myTable的表,在表中有一行名为myBirth,我插入了mybirth行日期值,该值存储为DATETIME。

我想知道如何将mysql中的日期值转换为age,然后回显它。我看到了类似的问题,但我的代码仍然出错。

$result = 'SELECT myBirth (YEAR, CURDATE()) AS age FROM myTable';
$run = mysql_query($result);  

while($row = mysql_fetch_array($run))
{
$age = $row['myBirth']; 
}
echo  $age;  

2 个答案:

答案 0 :(得分:1)

将“SQL函数”写为“myBirth”。并传递值(YEAR和CURDATE()))。在函数内部进行计算并返回年龄。

示例“myBirth”功能。

SET @d1 = YEAR, 
SET @d2 = CURDATE()

SET @d3 = DATEDIFF(@d1,@d2) 

RETURN  @d3;

这个例子只给出了要做什么的想法。

答案 1 :(得分:0)

http://www.artfulsoftware.com/infotree/queries.php#96

年龄 鉴于@dob中的生日,这里有两个简单的年龄公式:

Date_format( From_Days( To_Days(Curdate()) - To_Days(@dob) ), '%Y' ) + 0

Year(Curdate()) - Year(@dob) - ( Right(Curdate(),5) < Right(@dob,5) )

这里有一个年龄在几年到两位小数的地方,忽略了一个月中的某一天:

Round((((Year(now()) - Year(@dob)))*12 + (((Month(now()) - Month(@dob)))))/12, 2)