timestampdiff就是计算第二个参数和第三个参数之间时间差,第一个参数year表示计算间隔多少年
这里就是计算每个读者的生日距现在有多少年了,也就是获取每个读者的年龄把
整个sql查询的应该就是,获取读者年龄在b.age_min和b.age_max之间的读者数据
计算时间年份的时间差,当前时间减去birthday的时间 也就是计算年龄, 然后 between min and max 就是查询年龄在这个分段之间的数据
计算当前时间到a.reader_birthday的时间差,单位是YEAR,可能是算出生到现在过了多少年了吧
数据表中的生日年份 相差多少年 最后返回一个年份
第一点:你的图,提示那个表不存在,你确定你昂库里面存在那个表么?
第二,你要问这个sql其实就是一个内连接查询而已,可以看下介绍:
时间差函数:timestampdiff
MySQL
语法: timestampdiff(unit,begin,end)
begin和end可以为DATE或DATETIME类型,并且可允许参数为混合类型。
YEAR 当前年
CURDATE()当前日期 Y-m-d
这个返回结果是
reader_birthday与当前年的岁数差
TIMESTAMPDIFF(时间单位,date1,date2)
时间单位可以是:年(YEAR),月(MONTH),天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND)
意思:date2 减去 date1所对应的年数或月数或天数
你这里写的是TIMESTAMPDIFF(YERR,a. reader_birthday, CURDETE ()),标示的是当前系统日期 到出生日期之间的年数,用来计算年龄
阴影部门表示时间差的意思,是mysql中的一个函数,报错中提到的table找不到,建议在数据库中具体看一下。是确实表不存在还是说,没有给当前用户授予权限。希望可以解决你的问题。
计算生日当天与当前日期差值(单位:年) 即年龄
意思就是出生日期的年份在 年龄最小和最大之间的数据
sql有问题
查询某年龄段的读者