如何计算年龄等于一定数字的人数


How to count number of people, whose age equals certain number?

如何计算年龄等于例如 18 岁的人数?

<?php $emp_query=mysql_query("SELECT
  'employeeID',
  `LastName`,
  `birthday`,
  (YEAR(CURRENT_DATE)-YEAR(`birthday`))-(RIGHT(CURRENT_DATE,5)<RIGHT(`birthday`,5)
  ) AS `age`
FROM `employee`
ORDER BY `LastName`");
while($row=mysql_fetch_array($emp_query)){ $id=$row['employeeID']; ?>
                <td><?php echo $row['LastName']; ?></td>
                            <td><?php echo $row['birthday']; ?></td>
                            <td><?php  echo $row['age']?></td>
<?php } ?>

如果您对age计算感到满意,则可以将查询改写为:

SELECT COUNT(*)
FROM (SELECT (YEAR(CURRENT_DATE)-YEAR(`birthday`))-(RIGHT(CURRENT_DATE,5)<RIGHT(`birthday`,5)
             ) AS `age`
      FROM `employee`
     ) e
WHERE age = 18;
您可以使用

DATEDIFF() -函数将日期与其他日期相减,以获得以天为单位的日期差。

SELECT 
    `employeeID`,
    `LastName`,
    `birthday`
FROM
    `employee`
WHERE
    DATEDIFF(`birthday`, CURDATE()) / 365 < specified_age

最好为它定义一个存储过程,它允许动态输入(specified_age)并返回满足条件的行。如果您只有一个输入,只需将specified_age替换为一个数字(以年为单位)。Fe低于18岁,取18

这样的事情应该可以工作:

$emp_query = mysql_query("SELECT 
`employeeID`, 
`LastName`, 
`birthday`, 
`year`, 
`age` 
WHERE `age` = $number 
FROM `employee` 
ORDER BY `LastName`");

然后您可以从表单中获得"数字",例如 $number = $_POST["您的表单"];

如果这是您的设置,否则您只需在查询中换出特定号码的$number并上传文件即可。

做你的 while 或 foreach 循环