1、要求需要计算当前日期的年和出生日期之间的差,如果当前日期的日历年比出生日期早,则减去一年(为什么要减去一年呢?)mysql>select name, birth, curdate(),
->(year(curdate)-year(birth)) - (right(curdate, 5)<right(birth, 5))
->as age
->from pet;
(year(curdate)-year(birth)) - (right(curdate, 5)<right(birth, 5)) 是不是确定(right(curdate, 5)<right(birth, 5))得出的结果不是应该为一个布尔值吗?那么中间的减号是什么意思?
->(year(curdate)-year(birth)) - (right(curdate, 5)<right(birth, 5))
->as age
->from pet;
(year(curdate)-year(birth)) - (right(curdate, 5)<right(birth, 5)) 是不是确定(right(curdate, 5)<right(birth, 5))得出的结果不是应该为一个布尔值吗?那么中间的减号是什么意思?
解决方案 »
- mysql 查询新用户问题
- mysql中同一服务器,要从一个数据库里复制一个表到另一个数据库,sql语句怎么写?
- mysql AUTO_INCREMENT 字段 转成字符型输出,我用的asp
- postgresql ado odbc 大小写问题 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 新手提问:mysql服务器为什么不能自动启动
- “鎔,昇”这些字怎么能正确插入到MYSQL里?
- 在线等,FreeBSD下C++和MYSQL问题!!!!!!!!!!!
- 请问mysql里怎样返回多个字段组成的字符串呢?
- 哪些webserver支持mysql?哪些支持oracle?哪些支持sybase?
- mysql5.1 存储过程创建 修改问题
- latin1转换成utf-8
- 求全球国家信息表
(year(curdate)-year(birth) 这个判断差的年数 比如1992年出生 则是20
2。
right(curdate, 5)<right(birth, 5) 这个值是0或者1 如果过了今天已过生日 则是20-0 如果还没过生日 则是20-1=19
看看结果
如果right(curdate, 5)<right(birth, 5),则结果为1,
year(curdate)-year(birth)-1