mysql 根据出身日期获取年龄
时间: 2023-07-18 12:33:13 浏览: 875
可以使用 MySQL 的内置函数 `DATEDIFF` 和 `YEAR` 来计算出生日期和当前日期之间的年份差,从而获取年龄。
可以使用以下 SQL 语句来实现:
```sql
SELECT YEAR(NOW()) - YEAR(birthday) - (DATE_FORMAT(NOW(), '%m%d') < DATE_FORMAT(birthday, '%m%d')) AS age FROM table_name;
```
其中,`birthday` 是出生日期字段,`table_name` 是你的数据表名。
通过这个 SQL 语句,你可以获取每个人的年龄。
相关问题
mysql 根据出身日期获取年龄分组
要根据出生日期获取年龄分组,你可以在 SQL 语句中使用 `GROUP BY` 子句并将 `age` 字段添加到 `SELECT` 语句中。
下面是一个示例 SQL 语句:
```sql
SELECT
FLOOR(DATEDIFF(NOW(), birthday) / 365) AS age_group,
COUNT(*) AS count
FROM
table_name
GROUP BY
age_group;
```
在这个查询中,我们使用了 `FLOOR(DATEDIFF(NOW(), birthday) / 365)` 来计算年龄,并将其命名为 `age_group`。然后我们使用 `COUNT(*)` 计算每个年龄组的人数,并将其命名为 `count`。最后,我们使用 `GROUP BY` 对 `age_group` 进行分组。
通过这个 SQL 语句,你可以获取每个年龄组中的人数。
MySQL根据入学日期和年龄查询出生年份
假设有一个名为students的表,其中包含以下字段:name, age, enrollment_date(入学日期)。你可以使用MySQL的DATE_FORMAT函数和YEAR函数来查询学生的出生年份。
例如,以下查询语句可以查询年龄大于等于20岁,并且入学日期在2018年之后的学生的出生年份:
```
SELECT name, age, enrollment_date, YEAR(NOW()) - age AS birth_year
FROM students
WHERE age >= 20 AND YEAR(enrollment_date) >= 2018;
```
解释一下上面的查询语句:
- YEAR(NOW())获取当前年份。
- YEAR(enrollment_date)获取入学日期的年份。
- NOW() - age计算出生年份。
- WHERE子句指定了筛选条件,只有符合条件的学生才会被查询出来。
希望能对你有所帮助!