sql根据出生日期计算年龄
时间: 2023-08-29 18:12:31 浏览: 231
可以使用DATEDIFF函数和YEAR函数来计算年龄。假设出生日期保存在birth_date列中,可以使用以下SQL语句计算年龄:
```sql
SELECT YEAR(CURDATE()) - YEAR(birth_date) - (RIGHT(CURDATE(), 5) < RIGHT(birth_date, 5)) AS age FROM table_name;
```
其中,YEAR(CURDATE())返回当前年份,YEAR(birth_date)返回出生日期的年份,RIGHT(CURDATE(), 5)返回当前日期的月份和日数,RIGHT(birth_date, 5)返回出生日期的月份和日数。如果当前月份和日数小于出生日期的月份和日数,则需要将年龄减1。
请将table_name替换为实际的表名。
相关问题
sql根据出生日期算年龄
可以使用DATEDIFF函数来计算年龄,例如:
SELECT DATEDIFF(CURDATE(), birthdate) / 365 AS age FROM table_name;
其中,CURDATE()表示当前日期,birthdate为出生日期,table_name为表名。这条SQL语句将返回一个名为age的列,其中包含每个人的年龄。
hive sql根据出生日期计算年龄
在Hive SQL中,可以使用`datediff`函数和`from_unixtime`函数来计算年龄。具体的操作步骤如下:
1. 假设有一个名为`person`的表,其中包含`birthday`列,表示出生日期。
2. 使用`from_unixtime`函数将`birthday`列转换为Unix时间戳,然后再将其与当前时间的Unix时间戳相减,得到相差的秒数。
3. 将相差的秒数除以年的秒数(即365.25天 * 24小时 * 60分钟 * 60秒),得到相差的年数。
4. 使用`floor`函数将相差的年数取整,得到最终的年龄。
下面是具体的SQL语句:
```
SELECT floor(datediff(from_unixtime(unix_timestamp()), from_unixtime(unix_timestamp(birthday))) / (365.25 * 24 * 60 * 60)) AS age
FROM person;
```
其中,`unix_timestamp()`函数表示当前时间的Unix时间戳,`unix_timestamp(birthday)`表示`birthday`列对应的Unix时间戳。`datediff`函数计算两个时间戳之间的天数,然后除以365.25得到相差的年数,最后使用`floor`函数取整。