2016-04-21 123 views
0

在MySQL中,我有两个日期:birth_date as出生日期和date_starb as死亡日期。 表中的所有的人,我需要选择只有死人和死者的年龄:在mysql中比较两个日期mysql

$sql = "SELECT members.*, TIMESTAMPDIFF(YEAR,'birth_date','date_starb') AS age FROM members WHERE (date_starb != 0)"; //select only dead peoples 

查询处理:

<?php 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
// Fetch a result row as an associative array 
while($row = $result->fetch_assoc()) { 
?> 
<td><?php echo $row["name"];?></td> 
<td><?php echo date("j. F Y", strtotime($row["birth_date"]));?></td> 
<td><?php echo date("j. F Y", strtotime($row["date_starb"]));?></td> 
<td><?php echo $row["age"];?></td> 
<?php 
} 
} 
else 
{ 
echo "0 results"; 
} 
$conn->close(); 
?> 

作为结果,我得到的线,名字正确的数量和出生和死亡日期,但在列“年龄”我没有结果。页面也没有看到错误信息。

一些解决方案?谢谢你的回答。

+1

删除单引号括起来birth_date和date_starb – Fabricator

回答

2

你不需要在'

$sql = "SELECT members.*, TIMESTAMPDIFF(YEAR,birth_date,date_starb) AS age FROM members WHERE (date_starb != 0)"; //select only dead peoples 

包字段名,否则MySQL的对待他们像琴弦

+0

谢谢两位:) –