来自年份和日期列的年龄 Netezza sql
Age from year and date column Netezza sql
我有ID等数据元素; start_date; Birth_year。我想根据 birth_year 列和 start_date 计算年龄,如 AGE 列中所示。
我只能想到用“-01-01”填充出生年份,然后使用该列来计算年龄。
在 Netezza 中是否有另一种从出生年份和开始日期获取年龄的有效方法 SQL?
使用 extract SQL function 从 start_date 中获取年份并进行年龄计算
例如
select
start_date,
birth_year,
-- assuming birth_year is an integer
extract(year from start_date) - birth_year as age
from ...
会给
START_DATE | BIRTH_YEAR | AGE
------------+------------+-----
2000-01-15 | 1985 | 15
2010-06-20 | 1990 | 20
2005-12-15 | 1992 | 13
2007-08-17 | 1998 | 9
2020-09-15 | 1999 | 21
(5 rows)
另一种获取更详细年龄的方法是使用 Netezza 'age' SQL function -
select
start_date,
birth_year,
age(start_date, to_date(birth_year, 'YYYY'))
from...
这将导致
START_DATE | BIRTH_YEAR | AGE
------------+------------+--------------------------
2000-01-15 | 1985 | 15 years 14 days
2010-06-20 | 1990 | 20 years 5 mons 19 days
2005-12-15 | 1992 | 13 years 11 mons 14 days
2007-08-17 | 1998 | 9 years 7 mons 16 days
2020-09-15 | 1999 | 21 years 8 mons 14 days
(5 rows)
我有ID等数据元素; start_date; Birth_year。我想根据 birth_year 列和 start_date 计算年龄,如 AGE 列中所示。
我只能想到用“-01-01”填充出生年份,然后使用该列来计算年龄。
在 Netezza 中是否有另一种从出生年份和开始日期获取年龄的有效方法 SQL?
使用 extract SQL function 从 start_date 中获取年份并进行年龄计算
例如
select
start_date,
birth_year,
-- assuming birth_year is an integer
extract(year from start_date) - birth_year as age
from ...
会给
START_DATE | BIRTH_YEAR | AGE
------------+------------+-----
2000-01-15 | 1985 | 15
2010-06-20 | 1990 | 20
2005-12-15 | 1992 | 13
2007-08-17 | 1998 | 9
2020-09-15 | 1999 | 21
(5 rows)
另一种获取更详细年龄的方法是使用 Netezza 'age' SQL function -
select
start_date,
birth_year,
age(start_date, to_date(birth_year, 'YYYY'))
from...
这将导致
START_DATE | BIRTH_YEAR | AGE
------------+------------+--------------------------
2000-01-15 | 1985 | 15 years 14 days
2010-06-20 | 1990 | 20 years 5 mons 19 days
2005-12-15 | 1992 | 13 years 11 mons 14 days
2007-08-17 | 1998 | 9 years 7 mons 16 days
2020-09-15 | 1999 | 21 years 8 mons 14 days
(5 rows)