这个SQL查询代码是啥意思啊,主要我选中的阴影部分的代码是啥意思,没读懂代码,不知道查的啥,有家人能给我解释一下吗?

img


这个我画阴影的部分的代码是啥意思啊,这整个代码是什么意思啊,不知道这个代码查的是啥

timestampdiff就是计算第二个参数和第三个参数之间时间差,第一个参数year表示计算间隔多少年
这里就是计算每个读者的生日距现在有多少年了,也就是获取每个读者的年龄把

整个sql查询的应该就是,获取读者年龄在b.age_min和b.age_max之间的读者数据

  1. 你的sql有问题,on后面没有字段关联
  2. 读者的出生时间到现在的时间的年差值,也就是读者的年龄,读者的年龄介于b.age_min 和b.age_max之间
  3. 那是一个函数表达时间差语义类似 10 between 1 and 100

img

计算时间年份的时间差,当前时间减去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与当前年的岁数差

计算时间差
参考链接

MySQL timestampdiff()函数_ourLang的博客-CSDN博客_timestampdiff 下面说明了TIMESTAMPDIFF函数的语法。TIMESTAMPDIFF(unit,begin,end);TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式。TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函... https://blog.csdn.net/qq_37493556/article/details/92805912?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166728485416800184110216%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166728485416800184110216&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-92805912-null-null.nonecase&utm_term=timestampdiff&spm=1018.2226.3001.4450

TIMESTAMPDIFF(时间单位,date1,date2)
时间单位可以是:年(YEAR),月(MONTH),天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND)
意思:date2 减去 date1所对应的年数或月数或天数

你这里写的是TIMESTAMPDIFF(YERR,a. reader_birthday, CURDETE ()),标示的是当前系统日期 到出生日期之间的年数,用来计算年龄

阴影部门表示时间差的意思,是mysql中的一个函数,报错中提到的table找不到,建议在数据库中具体看一下。是确实表不存在还是说,没有给当前用户授予权限。希望可以解决你的问题。

计算生日当天与当前日期差值(单位:年) 即年龄

意思就是出生日期的年份在 年龄最小和最大之间的数据

sql有问题

查询某年龄段的读者