出生日期2012-03-21 sql算年龄 oracle
时间: 2023-12-31 09:05:31 浏览: 189
使用以下SQL语句可以计算出生日期为2012-03-21的人现在的年龄:
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE('2012-03-21','YYYY-MM-DD'))/12) AS AGE
FROM DUAL;
其中,TO_DATE('2012-03-21','YYYY-MM-DD')将出生日期转换为日期格式,MONTHS_BETWEEN(SYSDATE,TO_DATE('2012-03-21','YYYY-MM-DD'))计算出两个日期之间的月份差,然后除以12即可得到年龄。使用TRUNC函数将结果取整为整数。
相关问题
Oracle根据日期算年龄
在Oracle中,可以使用以下语句计算一个人的年龄:
```sql
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12) as age FROM person;
```
其中,`birth_date`是一个日期类型的列,表示该人的出生日期。`SYSDATE`是系统当前日期,`MONTHS_BETWEEN`函数计算出两个日期之间的月份数,然后除以12得到年龄,最后使用`TRUNC`函数取整数部分。
oracle从date类型出生日期计算年龄;精确的年龄计算
要从Oracle中的日期类型的出生日期计算年龄,可以使用以下SQL查询:
```sql
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12) AS age,
TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date)) - (TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12) * 12) AS months,
TRUNC(SYSDATE) - ADD_MONTHS(birth_date, TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date))) AS days
FROM your_table;
```
这个查询将计算出整数岁数、月份和天数。`birth_date`是你的表中包含出生日期的列名。`SYSDATE`是系统当前日期。
- `TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12)` 计算整数岁数。
- `TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date)) - (TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date) / 12) * 12)` 计算不满一岁的月份。
- `TRUNC(SYSDATE) - ADD_MONTHS(birth_date, TRUNC(MONTHS_BETWEEN(SYSDATE, birth_date)))` 计算不满一月的天数。
这样可以得到更精确的年龄计算结果,包括整数岁数、不满一岁的月份和不满一月的天数。
阅读全文