如何计算年龄等于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 } ?>
答案 0 :(得分:2)
如果您对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;
答案 1 :(得分:0)
您可以使用DATEDIFF()
- 功能与其他日期相减日期,以获得以天为单位的日期差异。
SELECT
`employeeID`,
`LastName`,
`birthday`
FROM
`employee`
WHERE
DATEDIFF(`birthday`, CURDATE()) / 365 < specified_age
最好为它定义stored procedure,它允许动态输入(specified_age
)并返回符合条件的行。如果您只有一个输入,只需将specified_age
替换为数字,即可。如果Fe低于18岁,请改为18
。
答案 2 :(得分:0)
这样的事情应该有效:
$emp_query = mysql_query("SELECT
`employeeID`,
`LastName`,
`birthday`,
`year`,
`age`
WHERE `age` = $number
FROM `employee`
ORDER BY `LastName`");
然后&#34;数字&#34;您可以从表格中获取,例如$ number = $ _POST [&#39;您的表格&#39;];
如果这是您的设置,否则您只需在查询中换出$ number以获取特定号码并上传该文件。
//做你的while或foreach循环