0

如何使用今天的日期计算“出生年份”,例如年龄列的值是 22,55,30,使用 oracle sql 按从小到大的顺序排列。

4

3 回答 3

4

当您需要显示该信息时,我会存储生日并计算年龄。

生日不会改变。年龄每年都会变化。

于 2013-10-17T23:14:43.747 回答
1

假设你有今天生日的人的年龄,那么你可以这样得到出生年份:`

SELECT EXTRACT(YEAR from SYSDATE) - age as BirthYear
FROM TABLE1
ORDER BY BirthYear
于 2013-10-17T23:13:10.197 回答
0

如果您只有年龄,则无法准确确定出生年份。考虑一个出生于 1970 年 12 月 31 日的人。他们是

  • 1970 年 12 月 31 日至 1971 年 12 月 30 日期间不满 1 岁
  • 1971 年 12 月 31 日至 1972 年 12 月 30 日期间满 1 岁
  • 等等

考虑下一周出生的人,比如 1971 年 1 月 5 日)。他们是

  • 1971 年 1 月 5 日至 1972 年 1 月 4 日期间不满 1 岁
  • 1972 年 1 月 5 日至 1973 年 1 月 4 日期间满 1 岁
  • 等等

现在是 2013 年(今天,实际上是 2013 年 10 月 17 日)。关于这两个人,你只知道他们 43 岁。2013-43 说 1970 年是出生年份,但其中一个是错误的。给定日期和截至该日期的年龄,您能做的最好的事情就是在实际出生年份的 1 年内。

你需要一个出生日期。

于 2013-10-17T23:30:30.403 回答