php mysql怎样根据数据库表中的出生日期搜索出年龄大于65岁的记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php mysql怎样根据数据库表中的出生日期搜索出年龄大于65岁的记录相关的知识,希望对你有一定的参考价值。
这句sql可以根据出生日期字段计算出每条记录的年龄:
SELECT *, CURDATE(),(YEAR(CURDATE())-YEAR(csrq))- (RIGHT(CURDATE(),5)<RIGHT(csrq,5)) AS age FROM information
我是这么写的:
SELECT *, CURDATE(),(YEAR(CURDATE())-YEAR(csrq))- (RIGHT(CURDATE(),5)<RIGHT(csrq,5)) AS age FROM information where age>65
但是报错。。。。
另外,你不能使用SELECT后面的别名作为WHERE的条件,必须使用数据库表的字段作为条件,你要获取65岁以上的可以使用这样:
WHERE csrq<MAKEDATE(YEAR(NOW())-65, DAYOFYEAR(NOW())) 参考技术A SELECT * FROM 表 WHERE YEAR(NOW())-YEAR(生日字段) > 65追问
你好,你这个是不精确的,我需要精确到天。能再详细点吗?
追答SELECT DATEDIFF(CURDATE(),'1980-01-01') > 65*365
按每年365天计算,65*365 = 天数 DATEDIFF(CURDATE(),生日字段) 计算相差天数 > 65*365
即
SELECT * FROM 表 WHERE DATEDIFF(CURDATE(),生日字段) > 65*365
你好,你这个还是不精确的哦,例如我数据表中有一条记录是1947-04-30,通过这条sql查询出来已经大于65岁了,然而正确的要后天才满65岁。能不能再完善下呢?
参考技术B SELECT * FROM information where unix_timestamp(now()) - unix_timestamp(csrq) > 65 * 365 * 24 * 3600;以上是关于php mysql怎样根据数据库表中的出生日期搜索出年龄大于65岁的记录的主要内容,如果未能解决你的问题,请参考以下文章