【问题标题】:convert date value in mysql into age将mysql中的日期值转换为年龄
【发布时间】:2013-08-26 02:54:39
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php mysql date


    【解决方案1】:

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

    “myBirth”函数示例。

    SET @d1 = YEAR, 
    SET @d2 = CURDATE()
    
    SET @d3 = DATEDIFF(@d1,@d2) 
    
    RETURN  @d3;
    

    这个例子只是给出了一个关于做什么的想法。

    【讨论】:

      【解决方案2】:

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-08
        • 1970-01-01
        • 1970-01-01
        • 2014-09-13
        相关资源
        最近更新 更多